例如,字符串“abc”应该包含3个唯一字符,而字符串“abcccd”应该包含4个唯一字符。在此过程中,我不允许使用Map、HashMap、TreeMap、Set、HashSet、StringBuffer或TreeSet。
到目前为止,我尝试使用for循环,但是当我运行程序时,得到的唯一字符数总是为0。由于我对Java相当陌生,因此我真的不知道应该怎么做。
编辑:所以我改变了代码,现在能够得到结果了,但是它的值比我想要的少1。例如输入'abc',结果会显示为“2个唯一字符”,而不是三个。为了解决这个问题,我在println语句中添加了(uniqueChars + 1)。这是一个好的修改吗?如果用户没有输入任何内容,程序将仍然显示有1个唯一字符。
更新后的代码:
到目前为止,我尝试使用for循环,但是当我运行程序时,得到的唯一字符数总是为0。由于我对Java相当陌生,因此我真的不知道应该怎么做。
编辑:所以我改变了代码,现在能够得到结果了,但是它的值比我想要的少1。例如输入'abc',结果会显示为“2个唯一字符”,而不是三个。为了解决这个问题,我在println语句中添加了(uniqueChars + 1)。这是一个好的修改吗?如果用户没有输入任何内容,程序将仍然显示有1个唯一字符。
更新后的代码:
userText = userText.toLowerCase(); // userText is declared earlier in the program
// as the user's input. Setting this to lowercase
// so it doesn't say "a" and "A" are two different
// characters.
int uniqueChars = 0;
for (int i = 0; i < lengthText-1; i++) { // lengthText is declared earlier
// as userText.length();
if (userText.charAt(i) != userText.charAt(i+1))
uniqueChars++;
}
System.out.println("there are " + (uniqueChars + 1) + " unique characters in your string.");
}