查找两个不同的子字符串并在 JAVA 中打印它们之间的所有内容
Finding two different sub strings and printing everything between them in JAVA
String theString="gtcaatgccaataaagt";
char[] charArray = theString.toCharArray();
int len=theString.length();
boolean start = false,end1 = false;
for(int i=0;i<len;i++){
if(charArray[i]=='a' && charArray[i+1]=='t' && charArray[i+2]=='g'){
start=true;
}
if(charArray[i]=='t' && charArray[i+1]=='a' && charArray[i+2]=='a'){
end1=true;
}
}
while(start==true && end1==true){
for(int i=0;i<len;i++){
System.out.println(charArray[i]);
}
}
我想打印字符串 "theString" 中 "atg" 和 "taa" 之间的字符...
但是使用上面的代码我得到 java.lang.ArrayIndexOutOfBoundsException。
不知道如何处理它...我认为错误在第一个for循环中.....但我不知道如何先阅读"atg"然后阅读"taa"
您正在根据字符串的大小检查索引
for(int i=0;i<len;i++){
但正在访问
之后两个字符的字符串
if(charArray[i]=='a' && charArray[i+1]=='t' && charArray[i+2]=='g'){
将循环更改为
for(int i=0;i<len-2;i++){
或者在字符串 API.
中使用 indexOf
和 lastIndexOf
方法
像这样的东西对你有用:
public static void main(String[] args) {
String s = "abcdefghijk";
int i1 = s.indexOf("cd")+2; // add index + length of substring (i.e, 2)
int i2 = s.indexOf("ij");
System.out.println(s.substring(i1,i2));
}
O/P :
efgh
String theString="gtcaatgccaataaagt";
char[] charArray = theString.toCharArray();
int len=theString.length();
boolean start = false,end1 = false;
for(int i=0;i<len;i++){
if(charArray[i]=='a' && charArray[i+1]=='t' && charArray[i+2]=='g'){
start=true;
}
if(charArray[i]=='t' && charArray[i+1]=='a' && charArray[i+2]=='a'){
end1=true;
}
}
while(start==true && end1==true){
for(int i=0;i<len;i++){
System.out.println(charArray[i]);
}
}
我想打印字符串 "theString" 中 "atg" 和 "taa" 之间的字符... 但是使用上面的代码我得到 java.lang.ArrayIndexOutOfBoundsException。 不知道如何处理它...我认为错误在第一个for循环中.....但我不知道如何先阅读"atg"然后阅读"taa"
您正在根据字符串的大小检查索引
for(int i=0;i<len;i++){
但正在访问
之后两个字符的字符串if(charArray[i]=='a' && charArray[i+1]=='t' && charArray[i+2]=='g'){
将循环更改为
for(int i=0;i<len-2;i++){
或者在字符串 API.
中使用indexOf
和 lastIndexOf
方法
像这样的东西对你有用:
public static void main(String[] args) {
String s = "abcdefghijk";
int i1 = s.indexOf("cd")+2; // add index + length of substring (i.e, 2)
int i2 = s.indexOf("ij");
System.out.println(s.substring(i1,i2));
}
O/P :
efgh