2017-07-03 39 views
-2
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); 

這裏我試圖在不使用子字符串方法的情況下提取「nice」一詞......並且此程序有什麼錯誤?在不使用內置字符串函數的情況下提取字符之間的詞

+1

請記住始終顯示您的實際輸出和/或錯誤消息的樣子。 – domsson

+1

提示:你的'while'循環會立即中斷,因爲第一個'str.charAt(j)'保證是一個''*''(理由:'j = i ++;'不會做你看起來似乎認爲是) – UnholySheep

+0

'j = i ++;'將j設置爲i的值,然後只增加i。請參閱:https://stackoverflow.com/questions/1094872/is-there-a-difference-between-x-and-x-in-java –

回答

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); 
0

j = i++;應該j = ++i;

否則你分配給i作爲ji++後增量。 對於後增量,僅在此語句後更改值i

而且你堅持找到*字符的索引,而不是你想要的下一個字符的索引。

+0

感謝好友!得到它了! – user634656

相關問題