试图在String中找到空格

时间:2018-03-07 14:58:10

标签: java string

我想查找我的字符串中是否有空格,如果有空格,则打印是否有空格,如果有,则打印字符串中最长的单词。

到目前为止我所做的是:

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

}

4 个答案:

答案 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();

基本上,它会对您的数组进行流式处理,然后根据每个元素(单词)的长度对其进行排序,然后选择最后一个单词,即最长的单词。