1

我的存储字符串给了我除了最后一个数字之外的所有数字,我知道它是因为最后一个数字与右边没有什么可比性。我可以以某种方式将最后一位数字添加到字符串的末尾吗?

    for(int i = 0;i < othercontent.length -1 ;i++ )
    {
        if(othercontent[i] != othercontent[i + 1])
        {
            storage = storage + othercontent[i]; 

        }
    }
4

6 回答 6

1
for(int i = 0; i < othercontent.length ;i++ )
{
    if(i == 0 || othercontent[i] != othercontent[i - 1])
    {
        storage = storage + othercontent[i]; 
    }
}
于 2013-09-18T11:31:30.503 回答
1

如果 othercontent 是字符串数组:

TreeSet<String> set = new TreeSet<>(Arrays.asList(othercontent));
othercontent = set.toArray(new String[0]);
for (String string : othercontent) {
    System.out.println(string);
}

如果 othercontent 是 String :

String othercontent = "ZZZZQQWEDDODRAABBNNNNO";
LinkedList<Character> list = new LinkedList<>();
for (Character character : othercontent.toCharArray()) {
    list.add(character);
}
TreeSet<Character> set = new TreeSet<>(list);
StringBuilder builder = new StringBuilder();
for (Character character : set) {
    builder.append(character);
}

System.out.println(builder.toString());

这段代码不仅可以排序,还可以删除重复项

输出 :

ABDENOQRWZ
于 2013-09-18T11:41:06.147 回答
0

您可以将最后一位数字添加到 for 循环之外的字符串中,因为它不需要检查任何条件

 for(int i = 0;i < othercontent.length -1; i++ ) {
    if(othercontent[i] != othercontent[i + 1]) {
        storage = storage + othercontent[i]; 
    }

}

 storage = storage + othercontent[othercontent.length - 1];
于 2013-09-18T11:30:36.017 回答
0
for(int i = 0; i < othercontent.length -1 ; ++i )    {
    if(othercontent[i] != othercontent[i + 1]) {
        storage = storage + othercontent[i];
    }
}
if(othercontent.length>0){
    storage = storage + othercontent[othercontent.length-1];
}
于 2013-09-18T11:32:12.587 回答
0

如果您正在检查重复项,您应该在循环之外执行类似的操作。

if(othercontent.length>0 && storage[storage.length-1] ! = othercontent[othercontent.length-1])
{
    storage = storage+othercontent[othercontent.length-1];
}
于 2013-09-18T11:36:27.600 回答
0

您可以检查是否到达了最后一个元素:

for(int i = 0;i < othercontent.length -1; i++ ) {
    if(othercontent[i] != othercontent[i + 1]) {
        storage = storage + othercontent[i]; 
    }
    //only gets executed if the last iteration is reached
    if(i==othercontent.length-2) {
        storage = storage + othercontent[i+1];
    }
}

或者,不使用条件,只需在循环之后编写:

storage = storage + othercontent[othercontent.length-1];
于 2013-09-18T11:27:08.620 回答