我必须找到字符串中最少出现的字符。

最佳答案

我想您想打印“ 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”来忽略未找到的字符。

同样,如果您有两个字母具有相同的计数,它将打印最后一个以最小计数相同的形式出现在字符串中。

09-27 12:29