【发布时间】:2019-09-27 06:05:44
【问题描述】:
我有一个问题,我需要根据它们在给定字符串中出现的顺序找到第一次出现的字符。
例如:
我有一个字符串 "Unitedin",其中字符 "n" 和 "i" 在字符串中多次出现。 char n 发生在 charAt(1,7) char i 发生在 charAt (2,6) 但是 char "i" 先出现在 char "n" 之前。
我已经尝试过这样的事情但是我没有得到所需的输出。有人可以帮帮我吗? 注意:挑战是不要使用任何类型的 List 或 Hashset 或 Hashmap
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
StringBuilder nodup = new StringBuilder();
StringBuilder dup = new StringBuilder();
System.out.println("Enter a string : ");
String instring = in.next();
for (int i = 0; i < instring.length(); i++) {
for (int j = i + 1; j < instring.length(); j++) {
if (instring.charAt(i) == instring.charAt(j)) {
nodup.append(instring.charAt(i));
} else {
dup.append(instring.charAt(i));
}
}
}
System.out.print(nodup.toString());
我得到的输出为:ni。但所需的输出是 in。
【问题讨论】:
-
“Unitedin”中的第一个“n”出现在“Unitedin”中的第一个“i”之前,所以如果我理解正确,“ni”是正确的。你能澄清一下吗?
-
你说的char按照顺序第一次出现是什么意思——哪个char,哪个顺序?
-
@Neil 如果您扫描给定字符串中的字符,
i的出现首先是n。希望我澄清。 -
@Armali 在给定的字符串中,我们有一组字符
u``n``i``tedin。是字符串中的字符。在这里,您可以看到第一次出现i的顺序首先是n。希望对您有所帮助。 -
@dev2kun 我想我明白你的意思。我提交了一个答案。请告诉我。