小技巧 表示Ascii码值为0的字符 (char)0即可
然后开一个128的Boolean数组进行标记是否已经访问过
import java.util.*; public class Main { public static void main(String[] args){ Scanner scanner = new Scanner(System.in); String str = scanner.nextLine(); int cnt = 0; int len = str.length(); char zeroC = (char)0; //表示Ascii码值为0的字符 boolean[] flag = new boolean[128]; for(int i = 0; i < len; i++){ if(flag[str.charAt(i) - zeroC] == false){ cnt++; flag[str.charAt(i) - zeroC] = true; } } System.out.println(cnt); } }