Я пытаюсь создать метод, который будет принимать массив символов, вырезать любые повторяющиеся пробелы (2 или более), а затем поместить '\u0000'
символов в конце для любого количества пробелов были вырезаны так, чтобы длина массива была выполнена. Я понимаю, что мне нужно сдвинуть элементы вниз, но это то, где у меня проблемы. Моя программа отлично работает с 2-мя пробелами, но последовательность из трех подряд выкинет ее. Я понимаю, почему это происходит, но я не знаю, как это исправить. Я знаю, что это связано с кодом characters[j] = characters[j+1]
, но я не знаю, как это сделать.
«Удаление» Дублирующиеся пробелы из массива char java
int duplicateCount = 0;
// Create a loop to read the element values
for(int i = 0; i + 1 < characters.length; i++){
// If the element is a space and the next one is a space
if(characters[i] == ' ' && characters[i+1] == ' '){
// Add to duplicate count and start shifting values down
duplicateCount++;
// *THIS IS WHERE I THINK BUG IS*
for(int j = i; j < characters.length - 1; j++){
characters[j] = characters[j+1];
}
}
}
// Replace characters at end with how many duplicates were found
for(int replace = characters.length - duplicateCount; replace < characters.length; replace++){
characters[replace] = '\u0000';
}
}
Спасибо всем.
см это http://stackoverflow.com/questions/3958955/how-to-remove-duplicate-white-spaces-in-string-using-java/3958979#3958979 –
ли эту работу с символами? И, кроме того, массивы? Кажется, это применимо только к строкам – dj1121
Вы хотите, чтобы все пробелы были перемещены в конец. правильно? –