在不使用内置字符串函数的情况下提取字符之间的单词

时间:2017-07-03 13:01:25

标签: java string

    String str="a*nice*day";
    String res="";

    int j=0;

    for(int i=0;i<str.length();i++)
    {
        if(str.charAt(i)=='*')
        {
            j=i++;
            break;
        }

    }
    while(str.charAt(j)!='*')
    {
        res=res+str.charAt(j);
        j++;
    }


    System.out.println(res);

这里我试图在不使用子串方法的情况下提取“好”这个词......这个程序有什么问题吗?

2 个答案:

答案 0 :(得分:0)

试试这段代码。我认为您的问题出在i++

String str="a*nice*day";
String res="";

int j=0;

for(int i=0; i<str.length(); i++){

      if(str.charAt(i)=='*'){
            j = i + 1;
            break;
        }
    }

while(str.charAt(j) != '*'){
    res=res+str.charAt(j);
    j++;
}

System.out.println(res);

答案 1 :(得分:0)

j = i++;应为j = ++i;

否则,您将i分配给j,因为i++是一个后期增量。 使用后增量时,i的值仅在此语句后更改。

你仍然坚持找到* char的索引,而不是你想要的下一个char的索引。