Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何找到数组单词中最后一个字母的首字母,以查看下一个单词是否也以该字母开头?_Java - Fatal编程技术网

Java 如何找到数组单词中最后一个字母的首字母,以查看下一个单词是否也以该字母开头?

Java 如何找到数组单词中最后一个字母的首字母,以查看下一个单词是否也以该字母开头?,java,Java,我刚开始学习Java,所以我对这种编程语言非常陌生。我已经研究类似的问题好几个小时了,但似乎没有什么具体的东西可以帮助我 如何检查第一个单词的最后一个字母是否与下一个单词的第一个字母相同?例如,用户输入:巧克力大象多伦多。巧克力的最后一个字母是“e”,这是大象的第一个字母,然后大象的最后一个字母是“t”,这是多伦多的第一个字母 我想这样做,如果所有的单词都正确地跟在另一个后面,它将打印类似“它们都匹配”,如果不匹配,那么“第二个单词不跟在第一个单词后面” 我只是想知道,如果用户决定每次输入不同数

我刚开始学习Java,所以我对这种编程语言非常陌生。我已经研究类似的问题好几个小时了,但似乎没有什么具体的东西可以帮助我

如何检查第一个单词的最后一个字母是否与下一个单词的第一个字母相同?例如,用户输入:巧克力大象多伦多。巧克力的最后一个字母是“e”,这是大象的第一个字母,然后大象的最后一个字母是“t”,这是多伦多的第一个字母

我想这样做,如果所有的单词都正确地跟在另一个后面,它将打印类似“它们都匹配”,如果不匹配,那么“第二个单词不跟在第一个单词后面”


我只是想知道,如果用户决定每次输入不同数量的单词进行检查,如何做到这一点。我猜我需要一个字符串数组,但我仍然可以使用charAt解决这个问题吗?

试试下面的方法:

public String checkWords(String phrase){
    if(phrase == null){
        return "Phrase must not be null";
    }
    String[] words = phrase.toLowerCase().split(" ");
    if(words.length < 2){
        return "At least 2 words!";
    }
    for (int i = 0; i < (words.length - 1); i++) {
        String firstWord = words[i].trim();
        char firstWordlastLetter = firstWord.charAt(firstWord.length()-1);
        String secondWord = words[i+1].trim();
        char secondWordFirstLetter = secondWord.charAt(0);
        if(firstWordlastLetter!=secondWordFirstLetter){
            return String.format("Word %d does not follow word %d", i+1, i);
        }
    }

    return "They all match";
}
公共字符串校验字(字符串短语){
if(短语==null){
返回“短语不能为空”;
}
String[]words=短语.toLowerCase().split(“”);
如果(字数长度<2){
返回“至少2个单词!”;
}
for(int i=0;i<(words.length-1);i++){
String firstWord=words[i].trim();
char firstWordlastLetter=firstWord.charAt(firstWord.length()-1);
字符串secondWord=words[i+1].trim();
char secondWordFirstLetter=secondWord.charAt(0);
if(firstWordlastLetter!=第二个WordFirstLetter){
返回String.format(“单词%d不跟在单词%d后面”,i+1,i);
}
}
返回“他们都匹配”;
}

您可以使用如下方法:

private static boolean wordCheck(String[] words) {
    if(words.length < 2) {
        return true; //check what to return if only 1 word is passed
    }
    for(int i = 1; i < words.length; i++) {
        String currentWord = words[i].toLowerCase();
        String previousWord = words[i - 1].toLowerCase();

        if(!currentWord.startsWith(previousWord.substring(
                previousWord.length() - 1))) {
            return false;
        }
    }

    return true;
}

记住验证发送给方法的单词。上述情况无法确保索引有效,空值和0长度字符串可能导致异常。

欢迎使用Stackoverlow。为了得到好的答案,明智的做法是发布到目前为止的代码,并指出意外事件发生的时间点。你的问题太宽泛了,无法得到一个你可以接受的答案。你试过什么了吗?到底是什么问题?String[]words=短语!=无效的短语.toLowerCase().split(“”):;此行出现错误,表明您编辑的类型不匹配。似乎您正在向函数传递null。
wordCheck("Chocolate Elephant Toronto".split(" ")) //returns true
wordCheck("Chocolate Elephant oronto".split(" ")) //returns false