我查看了帖子但找不到确切的答案。这是我的代码。它只在我设置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);
}
答案 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