【问题标题】:Finding two different sub strings and printing everything between them in JAVA查找两个不同的子字符串并在 JAVA 中打印它们之间的所有内容
【发布时间】:2015-05-13 02:32:43
【问题描述】:
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”

【问题讨论】:

  • 使用indexOfsubString()方法
  • @SumedhJunghare 不要评论您自己的问题,而是更新您的问题并删除您的评论。

标签: java arrays substring character-arrays


【解决方案1】:

您正在根据字符串的大小检查索引

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++){

或者使用 String API 中的 indexOflastIndexOf 方法。

【讨论】:

    【解决方案2】:

    这样的东西对你有用:

    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
    

    【讨论】:

      猜你喜欢
      • 2016-10-05
      • 2018-03-26
      • 2021-07-13
      • 2021-03-23
      • 2020-01-06
      • 2021-05-07
      • 1970-01-01
      • 2014-12-07
      • 1970-01-01
      相关资源
      最近更新 更多