2014-02-06 63 views
2

在我的程序中,我想從用戶處獲取輸入信息,並將單詞中的字母「e」分開,並將它們連接起來,而不用任何空格或不同的行。例如,如果我的輸入是「羅布是一個好人」,我希望它打印「niceperson」。這是我到目前爲止:如何拆分字詞並將其與某個字母分開?

Scanner kybd = new Scanner(System.in); 
String s = kybd.nextLine(); 
String[] arr = s.split(" ");  
for (String ss : arr) { 
    String []ary = {ss}; 
    for(int i = 0; i < ss.length(); i++){ 
     if(ary[i].equalsIgnoreCase("e")){ 
      System.out.print(ary); 
     } 
    } 
} 

感謝您的任何提示或幫助!

回答

3

使用contains方法,它的工作原理是這樣的:

niceperson 
+0

有沒有辦法做到這一點沒有包含方法?這是一項任務,我們還沒有了解包含。我想使用我在代碼中指定的方法。 – SplattColor

+1

當然,爲了學習,首先提示一下:而不是包含if,循環遍歷字符串的所有字符(使用'charAt(index)'),並且只有在找到搜索到的字母時追加該單詞。 – markusthoemmes

+0

如果沒有追加方法,你會有什麼建議嗎? (抱歉忘了指出我不知道那種方法......) – SplattColor

1

您可以用這種方式

String str = "Rob is a nice person"; 
    String[] arr = str.split(" "); // split by space 
    StringBuilder sb = new StringBuilder(); 
    for (String i : arr) { 
     if (i.contains("e")) { // if word contains e 
     sb.append(i);// append that word 
     } 
    } 
    System.out.println(sb); 

出把做string.Replace(「e」,「e」); 我假設你正在使用的字符串靜態方法,因爲我可以看到你正在使用拆分

0

怎麼樣的一些方法:

Scanner kybd = new Scanner(System.in); 
StringBuilder result = new StringBuilder(); 
String s = kybd.nextLine(); 
String[] arr = s.split(" "); 
for (String ss : arr) { 
    if(ss.contains("e")) { 
     result.append(ss); 
    } 
} 
0

試試這個

s = s.replaceAll("(\\b[\\w&&[^e]]+\\b)|\\s", ""); 
相關問題