【发布时间】:2017-04-15 10:59:34
【问题描述】:
我正在编写一个程序,它将打印字符串中的唯一字符(通过扫描仪输入)。我创建了一种方法来尝试完成此操作,但我不断获取不重复的字符,而不是字符串唯一的一个(或多个字符)。我只想要唯一的字母。
这是我的代码:
import java.util.Scanner;
public class Sameness{
public static void main (String[]args){
Scanner kb = new Scanner (System.in);
String word = "";
System.out.println("Enter a word: ");
word = kb.nextLine();
uniqueCharacters(word);
}
public static void uniqueCharacters(String test){
String temp = "";
for (int i = 0; i < test.length(); i++){
if (temp.indexOf(test.charAt(i)) == - 1){
temp = temp + test.charAt(i);
}
}
System.out.println(temp + " ");
}
}
这是上面代码的示例输出:
Enter a word:
nreena
nrea
预期的输出是:ra
【问题讨论】:
-
'nreena' 的预期输出是什么?
-
但是
e是重复的,你仍然会得到它。期望的输出是ra吗? -
无论如何,我会做类似
char[] array = test.toCharArray();之类的操作,然后为test中的每个字母循环遍历array,如果没有匹配项,请执行temp = temp + test.charAt(i);。 -
是的,所需的输出是“ra”。
-
一旦你添加了一个字符,你并没有在发现它多次出现时删除现有的字符。
标签: java string character unique