Использование метода replace () библиотеки String в java для удаления пробелов (пробел, табуляция, символ новой строки) из строки - PullRequest
0 голосов
/ 05 августа 2020

Я пытаюсь удалить все пробелы из строки. Я много гуглил и обнаружил, что для удаления пробелов используется только метод replaceAll (). Однако в задании, которое я выполняю для онлайн-курса, предлагается использовать метод replace () для удаления всех пробелов и использовать \n для символа новой строки и \t для символов табуляции. Я попробовал, вот мой код -

 public static String removeWhitespace(String s) {
        String gtg = s.replace(' ', '');
        gtg = s.replace('\t', '');
        gtg = s.replace('\n', '');
        return gtg;
    }

После компиляции я получаю сообщение об ошибке:

Error:(12, 37) java: empty character literal
Error:(13, 37) java: empty character literal
Error:(14, 37) java: empty character literal

Все 3 относятся к приведенному выше коду replace () в public static String removeWhitespace(String s) I Буду признателен, если кто-то указал, что я делаю не так :-). Спасибо!

Ответы [ 2 ]

3 голосов
/ 05 августа 2020

Существует два варианта replace(): один принимает символы, а другой - строки. Вы используете тип char, и поэтому вы не можете указать символ «ничего».

Используйте версию String:

gtg = gtg.replace("\t", "");

Обратите внимание на ошибку, которую я исправил там: ваш код заменяет символы из исходной строки снова и снова, поэтому будет произведена только последняя замена.

Вместо этого вы можете просто ввести код:

public static String removeWhitespace(String s) {
    return s.replaceAll("\\s", ""); // use regex
}
1 голос
/ 05 августа 2020

Попробуйте этот код,

public class Main {
    public static void main(String[] args) throws Exception {
        String s = " Test example    hello string    replace  enjoy   hh ";
        System.out.println("Original String             : "+s);
        s = s.replace(" ", "");
        System.out.println("Final String Without Spaces : "+s);
    }
}

Вывод:

Original String             :  Test example    hello string    replace  enjoy   hh                                                                         
Final String Without Spaces : Testexamplehellostringreplaceenjoyhh 

Другой способ с использованием массива символов:

public class Main {
    public static void main(String[] args) throws Exception {
        String s = " Test example    hello string    replace  enjoy   hh ";
        System.out.println("Original String             : "+s);
        String ss = removeWhitespace(s);
        System.out.println("Final String Without Spaces : "+ss);
      
    } 
    
    public static String removeWhitespace(String s) {
        char[] charArray = s.toCharArray();
        String gtg = "";
        
        for(int i =0; i<charArray.length; i++){                
            if ((charArray[i] != ' ') && (charArray[i] != '\t') &&(charArray[i] != '\n')) {
                gtg = gtg + charArray[i];
            }
        }    
        return gtg;
    }
}

Вывод:

Original String             :  Test example    hello string    replace  enjoy   hh                                                                         
Final String Without Spaces : Testexamplehellostringreplaceenjoyhh
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...