Удаление пробелов из строк в Java - PullRequest
633 голосов
/ 28 марта 2011

У меня есть такая строка:

mysz = "name=john age=13 year=2001";

Я хочу удалить пробелы в строке. Я попытался trim(), но это удаляет только пробелы до и после всей строки. Я также пытался replaceAll("\\W", ""), но затем = также удаляется.

Как мне получить строку с:

mysz2 = "name=johnage=13year=2001"

Ответы [ 31 ]

1 голос
/ 18 июля 2018

Есть и другие символы пробела, которые тоже существуют в строках. Таким образом, нам может понадобиться заменить символ пробела на строки.

Пример: пробел без разрывов, пробел три-EM, пробел пунктуации

Вот список пробелов http://jkorpela.fi/chars/spaces.html

Так что нам нужно изменить

\ u2004 с нами для ТРЕХМЕРНОГО ПРОСТРАНСТВА

s.replaceAll ( "[\ u0020 \ u2004]", "")

1 голос
/ 01 августа 2017

Чтобы удалить пробелы в вашем примере, это еще один способ сделать это:

String mysz = "name=john age=13 year=2001";
String[] test = mysz.split(" ");
mysz = String.join("", mysz);

Что он делает, так это преобразовывает его в массив с пробелами, являющимися разделителями, а затем объединяет элементы в массиве без пробелов.

Это работает довольно хорошо и легко понять.

1 голос
/ 14 октября 2015

Есть много способов решить эту проблему.Вы можете использовать функцию разделения или заменить функцию Strings.

для получения дополнительной информации обратитесь к проблеме смайликов http://techno -terminal.blogspot.in / 2015/10 / как удалить пробелы изучитывая, string.html

0 голосов
/ 25 апреля 2019

Вы также можете взглянуть на приведенный ниже код Java. Следующие коды не используют никаких «встроенных» методов.

/**
 * Remove all characters from an alphanumeric string.
 */
public class RemoveCharFromAlphanumerics {

    public static void main(String[] args) {

        String inp = "01239Debashish123Pattn456aik";

        char[] out = inp.toCharArray();

        int totint=0;

        for (int i = 0; i < out.length; i++) {
            System.out.println(out[i] + " : " + (int) out[i]);
            if ((int) out[i] >= 65 && (int) out[i] <= 122) {
                out[i] = ' ';
            }
            else {
                totint+=1;
            }

        }

        System.out.println(String.valueOf(out));
        System.out.println(String.valueOf("Length: "+ out.length));

        for (int c=0; c<out.length; c++){

            System.out.println(out[c] + " : " + (int) out[c]);

            if ( (int) out[c] == 32) {
                System.out.println("Its Blank");
                 out[c] = '\'';
            }

        }

        System.out.println(String.valueOf(out));

        System.out.println("**********");
        System.out.println("**********");
        char[] whitespace = new char[totint];
        int t=0;
        for (int d=0; d< out.length; d++) {

            int fst =32;



            if ((int) out[d] >= 48 && (int) out[d] <=57 ) {

                System.out.println(out[d]);
                whitespace[t]= out[d];
                t+=1;

            }

        }

        System.out.println("**********");
        System.out.println("**********");

        System.out.println("The String is: " + String.valueOf(whitespace));

    }
}

Введите:

String inp = "01239Debashish123Pattn456aik";

Выход:

The String is: 01239123456
0 голосов
/ 05 января 2019

При использовании st.replaceAll("\\s+","") в Kotlin , убедитесь, что вы обернули "\\s+" с Regex :

"myString".replace(Regex("\\s+"), "")
0 голосов
/ 03 июля 2018

Пробел можно удалить с помощью функции isWhitespace из класса символов.

public static void main(String[] args) {
    String withSpace = "Remove white space from line";
    StringBuilder removeSpace = new StringBuilder();

    for (int i = 0; i<withSpace.length();i++){
        if(!Character.isWhitespace(withSpace.charAt(i))){
            removeSpace=removeSpace.append(withSpace.charAt(i));
        }
    }
    System.out.println(removeSpace);
}
0 голосов
/ 12 июня 2018

Разделите каждую группу текста на собственную подстроку и затем объедините эти подстроки:

public Address(String street, String city, String state, String zip ) {
    this.street = street;
    this.city = city;
    // Now checking to make sure that state has no spaces...
    int position = state.indexOf(" ");
    if(position >=0) {
        //now putting state back together if it has spaces...
        state = state.substring(0, position) + state.substring(position + 1);  
    }
}
0 голосов
/ 05 июня 2018
public static String removeWhiteSpaces(String str){
    String s = "";
    char[] arr = str.toCharArray();
    for (int i = 0; i < arr.length; i++) {
        int temp = arr[i];
        if(temp != 32 && temp != 9) { // 32 ASCII for space and 9 is for Tab
            s += arr[i];
        }
    }
    return s;
}

Это может помочь.

0 голосов
/ 09 июня 2017

Вы можете достичь этого, не используя replaceAll () или какой-либо предопределенный метод в Java.этот способ предпочтителен: -

public class RemoveSpacesFromString {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String newString;
        String str = "prashant is good" ;
        int i;
        char[] strArray = str.toCharArray();
        StringBuffer sb =  new StringBuffer();

        for(i = 0; i<strArray.length; i++)
        {
            if(strArray[i]!= ' ' && strArray[i]!= '\t')
            {
                sb.append(strArray[i]);
            }
        }
        System.out.println(sb);

        /*newString = str.replaceAll(" " , "");
        System.out.println(newString);*/
    }
}
0 голосов
/ 30 мая 2013

Код, который вам нужен:

str.replaceAll("\\s","");

Это удалит все пробелы.

...