![](/img/trans.png)
[英]Java - what is the best way to check if a STRING contains only certain characters?
[英]Java - Check if a string only contains certain characters (i.e. DNA/RNA)
我在正则表达式方面苦苦挣扎。
我想做这样的事情:
if (sequence.matches(A|T|G|C)){
String type = "DNA"
}
elseif (sequence.matches(A|U|G|C)){
String type = "RNA"
}
因此,如果序列仅是A,T,G或C,则类型仅设置为DNA,而如果是A,U,G或C,则将类型设置为RNA
无论使用哪种编程语言,所需的正则表达式都应从头到尾测试字符串是否仅包含感兴趣的字符:
^[ACGT]+$
^
表示“字符串开始”。 [ACGT]
指示这4个字母之一。 +
表示必须有一个或多个这些字符。 $
表示“字符串结尾”。
因此,这意味着您的字符串中只能包含A,C,G或T,并且其中至少应包含一个。
正则表达式可能不是您最有效的选择:
static boolean consistsOf(String s, String of) {
for ( int i = 0; i < s.length(); i++ ) {
if ( of.indexOf(s.charAt(i)) == -1 ) {
return false;
}
}
return true;
}
您可以使用以下正则表达式
if (sequence.matches("[ATGC]+")) { // + for one or more occurrences, * for zero or more occurrences
其他检查也一样。
else if (sequence.matches("[AUGC]+")) { // + for one or more occurrences, * for zero or more occurrences
另外,您需要在双引号if(str.matches("strInDoubleQuotes"))
指定String。
集合论将要求这种简化:
String type = (sequence.contains("U")) ? "RNA" : "DNA";
String type = (sequence.contains("T")) ? "DNA" : "RNA";
没有? 坦白说,甚至不确定您是否需要2个表达式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.