2013-09-18 4 views
1

Моя строка хранения дает мне все нужные цифры, кроме последнего, я знаю его, потому что последняя цифра не имеет ничего, что можно сравнить с правым. Могу ли я добавить последнюю цифру до конца моей строки каким-то образом,Добавление последнего элемента в строку после массива

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

     } 
    } 
+0

Что вы хотите достичь в конце? –

+1

Можете ли вы дать образец ввода/вывода? –

+0

Я отсортировался, и теперь я избавляюсь от всех дубликатов в массиве – user2780490

ответ

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]; 
+1

Вам не нужно добавлять дополнительные условия внутри цикла, вместо этого вы можете просто добавить последний символ вне цикла (с некоторыми дополнительными проверками, если необходимо). что-то вроде storage = storage + othercontent [othercontent.length-1]; –

+0

@ KrishnaSarma Right. Отредактировал ответ, спасибо! – BackSlash

0

Вы можете добавить последнюю цифру в строку вне для цикла, поскольку она не требует, чтобы проверить любое условие

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]; 
1
for(int i = 0; i < othercontent.length ;i++) 
{ 
    if(i == 0 || othercontent[i] != othercontent[i - 1]) 
    { 
     storage = storage + othercontent[i]; 
    } 
} 
+0

Я немного насторожен, чтобы добавить дополнительные проверки внутри цикла. Вместо этого вы можете нажать 0-ю итерацию снаружи. –

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]; 
} 
0

Если проверка на дубликаты, вы должны сделать что-то вроде этого вне цикла.

if(othercontent.length>0 && storage[storage.length-1] ! = othercontent[othercontent.length-1]) 
{ 
    storage = storage+othercontent[othercontent.length-1]; 
} 
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 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()); 

не только сортировка, но и удаление дубликатов решены с этим кодом

OUTPUT :

ABDENOQRWZ 
Смежные вопросы