Место в мишени

Я снимаю место цепи текста и это использовал:

for (int x = 0; x < frase.length(); x++) {
    System.out.println(frase.replaceAll(" ", ""));

и у меня выходит это из-за экрана:

espacios

Моя идея состоит в том, чтобы он снял место начиная с 2 типов места последующих. Если я вхожу:

Hola  caracola 

(заметьте себе 2 место) я хочу удалить только место, не два место.

С предыдущим кодом он это снимает, но вытекает holacaracola совсем рядом, потому что я удаляю больше. Как он мог бы помещать место, но не касаясь предыдущего кода?

3
задан 08.11.2016, 16:50
3 ответа

Как покажи эту страницу:

tuString= tuString.replaceAll("\\s+", " ");

Пример:

System.out.println("lorem  ipsum   dolor \n sit.".replaceAll("\\s+", " ")); // reemplaza `\s+` por un espacio

Он выходит:

lorem ipsum dolor sit.

Так как:

\s+ это регулярное выражение. \s совпадая с местом, табуляцией, новой линией, intro...

Тогда, определенные символы остаются замененными на место

5
ответ дан 24.11.2019, 12:42
  • 1
    Спасибо за отвечание на мой вопрос, что я refer и # 237; в es, что это снимет, не используя \s.Pero в любом случае, pobrar и # 233;:) – kitkat 08.11.2016, 16:39
  • 2
    @bpico и #191; если ты не хочешь использовать \s тогда qu и # 233; другой способ ты ищешь? и #191; Он должен быть обязательно с expresi и # 243; n регулировать? –  08.11.2016, 17:31

Регулярное выражение " {2,}" совпади с 2 или более типами места последующими, что позволяет заменять это 1 только:

String frase = "hola    hola     caracola    !";
frase = frase.replaceAll(" {2,}"," ");

Результат:

hola hola caracola !

Demo:

Ideone.com



Если хотят быть заменены 2 или более табуляций последующих 1, он был бы использован:

String frase = "hola\t\thola\t\tcaracola!";
frase = frase.replaceAll("\\t{2,}","\t");
2
ответ дан 24.11.2019, 12:42

aquГ - одна soluciГіn, не используя одной expresiГіn регулировать:

рџ’» CГіdigo

public static void main(String[] args) {
    String str = "Hola  caracola  !";
    char[] chars = str.toCharArray();
    int dest = 1;
    for (int src = 1; src < chars.length; src++) {
        if (chars[src] != ' ' || chars[src - 1] != ' ') {
            chars[dest++] = chars[src];
        }
    }
    String result = new String(chars, 0, dest);
    System.out.println(result);
}

рџ “ѓ Вышедшая

Hola caracola !
1
ответ дан 24.11.2019, 12:42
  • 1
    Твой ответ tambi и # 233; n он подает меня. То, что фраза должна просить у себя из-за клавиатуры. Большое спасибо!! – kitkat 09.11.2016, 12:14