gpt4 book ai didi

java - 获取方框作为输出

转载 作者:行者123 更新时间:2023-12-02 01:57:36 24 4
gpt4 key购买 nike

我正在尝试按字母顺序打印字符串的不同字符,这是其他两个字符串串联的结果。我尝试过,但我得到了小方框作为输出。这是我的代码:

String s1 = "xyaabbbccccdefww", s2 = "xxxxyyyyabklmopq";
String s = s1+s2;
char[] c = s.toCharArray();
java.util.Arrays.sort(c);
char[] res = new char[c.length];
res[0]=c[0];
for(int i = 0; i<c.length ; i++) {
boolean isDuplicate=false;
for(int j = 0 ; j<c.length; j++) {
if(i!=j && c[i]==c[j]) {
isDuplicate=true;
break;
}
}
if(!isDuplicate) {
res[i+1]=c[i];
}
}
System.out.println(String.valueOf(res));

我得到这样的输出:

Image of output

但我想要这样的输出:

abcdefklmopqwxy

最佳答案

结果中出现方框的原因是,您仅在某些索引中将一些字符分配到 res 数组中,具体取决于 i 时的值 !isDuplicate 条件为真。

此外,检测重复字符的逻辑存在错误。请参阅下面的更正。您可以使用 StringBuilder 来代替 char 数组来存储结果,如下所示:

String s1 = "xyaabbbccccdefww", s2 = "xxxxyyyyabklmopq";
String s = s1+s2;
char[] c = s.toCharArray();
java.util.Arrays.sort(c);
StringBuilder result = new StringBuilder();
for(int i = 0; i<c.length ; i++) {
boolean isDuplicate=false;
for(int j = i+1 ; j<c.length; j++) {
if(c[i]==c[j]) {
isDuplicate=true;
break;
}
}
if(!isDuplicate) {
result.append(c[i]);
}
}
System.out.println(result.toString());

仅使用字符数组的解决方案:

String s1 = "xyaabbbccccdefww", s2 = "xxxxyyyyabklmopq";
String s = s1+s2;
char[] c = s.toCharArray();
java.util.Arrays.sort(c);
char[] result = new char[c.length];
int resultIndex = 0;
for(int i = 0; i<c.length ; i++) {
boolean isDuplicate=false;
for(int j = i+1 ; j<c.length; j++) {
if(c[i]==c[j]) {
isDuplicate=true;
break;
}
}
if(!isDuplicate) {
result[resultIndex++]=c[i];
}
}
char[] actualResult = new char[resultIndex];
for(int i=0;i<resultIndex;i++) {
actualResult[i] = result[i];
}
System.out.println(String.valueOf(c));
System.out.println(String.valueOf(result));
System.out.println(String.valueOf(actualResult));

关于java - 获取方框作为输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52101444/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com