Java 查找序列中出现两次的最大字符
我的方法findLargestDoubledChar接受一个字符串,当c是出现在相同代码旁边的最大字符时,返回char c。例如:Java 查找序列中出现两次的最大字符,java,string,loops,char,iteration,Java,String,Loops,Char,Iteration,我的方法findLargestDoubledChar接受一个字符串,当c是出现在相同代码旁边的最大字符时,返回char c。例如:findLargestDoubledChar(look)返回o和findLargestDoubledChar(aaxx)返回x。当没有双精度编码时,它应该返回'\u0000'我花了几个小时玩弄这段代码,这就是我所拥有的。我哪里做错了 public static char findLargestDoubledChar(String string){ c
findLargestDoubledChar(look)
返回o
和findLargestDoubledChar(aaxx)
返回x
。当没有双精度编码时,它应该返回'\u0000'
我花了几个小时玩弄这段代码,这就是我所拥有的。我哪里做错了
public static char findLargestDoubledChar(String string){
char largestDoubleChar = '\u0000';
String doubleChars = "";
char[] stringArray = string.toCharArray();
for(int x = 0; x < stringArray.length - 1; x++) {
for (int j = x + 1; j < stringArray.length; j++) {
if(stringArray[x] == stringArray[j]) {
System.out.println("Found Double!");
} else {
continue;
}
}
}
for (int i = 0; i < doubleChars.length(); i++) { //find largest of doubleChars
if (doubleChars.charAt(i) >= largestDoubleChar) {
largestDoubleChar = doubleChars.charAt(i);
} else {
largestDoubleChar = '\u0000';
continue;
}
}
return largestDoubleChar;
}
public静态字符findLargestDoubledChar(字符串){
char largestDoubleChar='\u0000';
字符串doubleChars=“”;
char[]stringArray=string.toCharArray();
对于(int x=0;x=最大的doubleChar){
最大双字符=双字符。字符(i);
}否则{
largestDoubleChar='\u0000';
继续;
}
}
返回最大的doublechar;
}
在第二个循环中,当doublechar被设置为空字符串时,看起来您正在对其进行迭代。也许像这样的方法会更好:
public static char findLargestDoubledChar(String string){
char largestDoubleChar = '\u0000';
String doubleChars = "";
char[] stringArray = string.toCharArray();
for(int i = 0; i < stringArray.length - 1; i++) {
if (stringArray[i] == stringArray[i + 1]) {
System.out.println("Found Double!");
if (stringArray[i] > largestDoubleChar) largestDoubleChar = stringArray[i];
}
}
return largestDoubleChar;
}
public静态字符findLargestDoubledChar(字符串){
char largestDoubleChar='\u0000';
字符串doubleChars=“”;
char[]stringArray=string.toCharArray();
对于(int i=0;ilargestDoubleChar)largestDoubleChar=stringArray[i];
}
}
返回最大的doublechar;
}
您有一些问题
char largestdublechar='\u0000';
字符串doubleChars=“”;
char[]stringArray=string.toCharArray();
对于(int x=0;x=最大的doubleChar){
最大双字符=双字符。字符(i);
}否则{
largestDoubleChar='\u0000';
继续;
}
}
返回最大的doublechar;
}"它可以在这样一个语句中完成,该语句还支持补充平面中的Unicode字符,例如emojis
public static String findLargestDoubledChar(String input) {
return Character.toString(Pattern.compile("(.)\\1").matcher(input)
.results().mapToInt(r -> r.group(1).codePointAt(0)).max().orElse('\0'));
}
试验
System.out.println(findLargestDoubledChar(“look”);
System.out.println(findLargestDoubledChar(“aaxx”);
System.out.println(findLargestDoubledChar(“试试这个
哎呀,您还有剩余的双字符。仍然:+1
public static String findLargestDoubledChar(String input) {
return Character.toString(Pattern.compile("(.)\\1").matcher(input)
.results().mapToInt(r -> r.group(1).codePointAt(0)).max().orElse('\0'));
}
System.out.println(findLargestDoubledChar("look"));
System.out.println(findLargestDoubledChar("aaxx"));
System.out.println(findLargestDoubledChar("Try this.
static final Pattern DOUBLE_PAT = Pattern.compile("(.)\\1");
public static char findLargestDoubledChar(String string){
return DOUBLE_PAT.matcher(string).results()
.map(x -> x.group().charAt(0))
.max(Comparator.naturalOrder()).orElse('\u0000');
}