2014-02-06 64 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", ""); 
相关问题