在不使用数组或手动选取字母的情况下查找字符串中的第一个字符串

时间:2016-03-24 16:27:58

标签: java

我查看了帖子但找不到确切的答案。这是我的代码。它只在我设置s.CharAt(0)时返回一个值,然后h将等于h。我希望它能够自动运行并且没有数组。

String s = "hellohe";
int d = s.length();

for (int i =0; i<d;i++)//{
   char result=s.charAt(0);

if (result==s.charAt(i)) {
    System.out.println(result);
}

2 个答案:

答案 0 :(得分:1)

编辑: 这将使用后引用(source)打印第一个重新出现的字符并向前看,所以在下面的例子中它打印'h':

String myString = "hellohe";
Pattern p = Pattern.compile("(([a-zA-Z]).*?(?=\\2))");
Matcher m = p.matcher(myString);
m.find();
System.out.println(m.group(2));

答案 1 :(得分:0)

我用一种方法提出了一个更清洁的解决方案:

public static char getFirstReocurringCharacter(String s) {
    for (int i = 0; i < s.length(); i++) {
        for (int j = i + 1; j < s.length(); j++) {
            if (s.charAt(i) == s.charAt(j)) {
                return s.charAt(i);
            }
        }
    }
    return ' ';
}

您可以致电:

public static void main(String[] args) {
    String s = "heasellohe";
    char result = getFirstReocurringCharacter(s);
    System.out.println(result);
}

示例运行:

  

运行:
  h
  建立成功(总时间:0秒)

现在,您可以在不同的Strings

上多次调用和运行该方法