-3

我有一些文字,我分开了单词,现在我需要检查每个单词是否以相同的字母开头(例如:'teeet','teeeT,'Teeet')。我怎么做 ?这是我所做的:

    Scanner input = new Scanner(System.in);
    String text = input.nextLine();

    String[] arr = text.split(" ");
    System.out.println("Display all words in a string: ");
    for ( String ss : arr) {

        // What now ?
    }

我需要用正则表达式来做

4

4 回答 4

4

您可以使用String#charAtString#length

char first = ss.charAt(0);
char last  = ss.charAt(ss.length() - 1);

现在比较它们。

我建议您在询问之前始终检查文档,它将包含此类问题的答案。


对于您的编辑,请参阅@Bohemian 的这个答案

如果第一个字符和最后一个字符相同,您可以确定使用正则表达式:

str.matches("(.).*\\1")

于 2013-10-13T13:51:46.883 回答
3
if (ss.charAt(0) == ss.charAt(s.length() - 1)) {
    // Do your stuff
}
于 2013-10-13T13:52:09.700 回答
2

使用正则表达式:

if (str.matches("(?i)(.).*\\1"))
于 2013-10-13T14:02:04.320 回答
0
package test;

导入 java.util.Scanner;

public class Test {

public static void main(String[] args) {
    new Test();
}

public Test() {
    Scanner input = new Scanner(System.in);
    String text = input.nextLine();

    String[] arr = text.split(" ");
    System.out.println("Display all words in a string: ");
    for (String ss : arr) {
        System.out.println("testing word:" + ss);
        String firstLetter = ss.substring(0, 1);
        String lastLetter = ss.substring(ss.length() - 1, ss.length());
        boolean firstEqualsLast = firstLetter.equalsIgnoreCase(lastLetter);
        System.out.println("first char equals last char=" + firstEqualsLast);
    }
}
}
于 2013-10-13T14:09:25.370 回答