我必须找到字符串中最少出现的字符。
最佳答案
我想您想打印“ y”,并且您的代码在很多方面都被破坏了:
这可以解决它:
public class Methods3 {
static final int chars = Character.MAX_VALUE;
static char least(String str) {
int[] bro = new int[chars];
int j;
for (j = 0; j < str.length(); j++) {
(bro[str.charAt(j)])++; // made the array
}
int min = Character.MAX_VALUE;
for (int x = 0; x < bro.length; x++) {
if ((bro[x]) <= min && bro[x] > 0) {
min = x; // finding the smallest number of times
}
}
return (char) min;
}
public static void main(String[] args) {
String txt = "yooooo bbaa ccoo";
char rez = least(txt);
System.out.println(rez);
}
}
(固定为建议使用Character.MAX_VALUE)。这将适用于任何字符串。
请注意,必须使用最大值初始化min才能使算法起作用,因此min = Character.MAX_VALUE。
在使用“ bro [str.charAt(x)]”的地方,必须使用“ bro [x]”。
并且,如果您需要额外的条件“ bro [x]> 0”来忽略未找到的字符。
同样,如果您有两个字母具有相同的计数,它将打印最后一个以最小计数相同的形式出现在字符串中。