我试图在不同的行上打印字符串中的所有单词。
public static void printWords ()
{
String s = "quick brown fox jumps over the lazy dog";
String[] arr = s.split(" ");
//System.out.println(words.length);
for ( String ss : arr){
System.out.println(ss);
}
}
上面的代码有效,结果如下:
现在的问题是如何删除单词之间带空格的行?
我必须使用isWhiteSpace来删除空格,但它似乎不起作用。
for (int ss = 0; ss < s.length(); ss++){
char c = s.charAt(i);
if (Character.isWhiteSpace(c))
//System.out.println("White Space");
retun null;
else
System.out.println(ss); }
解决方案:
public class Y15Q6 {
public static void printWords(String s) {
int i = 0;
while (i < s.length()) {
char c = s.charAt(i);
if (!Character.isWhitespace(c)) {
System.out.print(c);
i++;
}
else {
while (Character.isWhitespace(s.charAt(i)) && i < s.length())
i++;
System.out.print('\n');
}
}
}
}
答案 0 :(得分:3)
split()
采用正则表达式。因此,您可以指定正则表达式并更改此行:
String[] arr = s.split(" ");
到:
String[] arr = s.split("[ ]+");
下面,
[ ]
形成仅包含空格的字符类。+
要求它找到尽可能多的空格。正如Pshemo在下面的评论中所述,我们也可以使用:
String[] arr = s.split(" +");
此处,+
具有相同的角色。
答案 1 :(得分:1)
for (String ss : arr){
if (!ss.isEmpty()){
System.out.println(ss);
}
}