我想查找我的字符串中是否有空格,如果有空格,则打印是否有空格,如果有,则打印字符串中最长的单词。
到目前为止我所做的是:
private static void stringFunc() {
String s = new String("Crying to be heard");
String rts = " ";
String word[] = s.split(rts);
for (int i = 0; i < word.length; i++) {
if (word[i].length() >= rts.length()) {
rts = word[i];
}
}
System.out.println(rts);
}
答案 0 :(得分:1)
您排除了问题中最长的单词部分,您只需要确定原始字符串是否包含空格。
正如assylias所说,如果字符串中没有空格,您想要考虑您创建的数组中有多少项。如果这是正确的,你没有空格。如果没有,你需要运行最长的单词&#39;部分代码。
答案 1 :(得分:0)
private static void stringFunc() {
String s = new String("Crying to be heard");
String[] splits = s.split("\\s+");
int largeIndex = -1;
int maxLen = 0;
if (splits.length > 1) {
for (int i = 0; i < splits.length; i++) {
if (maxLen < splits[i].length()) {
largeIndex = i;
maxLen = splits[i].length();
}
}
}
if (largeIndex != -1)
System.out.println(splits[largeIndex]);
else
System.out.println("No white spaces");
}
答案 2 :(得分:0)
它不包含空格,因为您要用空格分割字符串。
String word[] = s.split(rts);
这已经从你的字符串中删除了空格,现在你正在迭代没有空格的字符串。
我认为他的意思是这样的。
private static void stringFunc() {
String s = new String("Crying to be heard");
String rts = " ";
String word[] = s.split(rts);
if(s.contains(rts)) {
System.out.println("There are spaces");
for (int i = 0; i < word.length; i++) {
if (word[i].length() >= rts.length()) {
rts = word[i];
}
}
System.out.println(rts);
}
}
答案 3 :(得分:0)
试试这个衬垫:
String longest = Arrays.stream(word).sorted(Comparator.comparing(a -> a.length())).reduce((a, b) -> b).get();
基本上,它会对您的数组进行流式处理,然后根据每个元素(单词)的长度对其进行排序,然后选择最后一个单词,即最长的单词。