Вы должны использовать
s.replaceAll("\\s+", "");
Таким образом, он будет работать с несколькими пространствами между каждой строкой. Знак + в указанном выше выражении означает "один или несколько \s"
Я набрал быстрый пример, чтобы проверить это, потому что он показался мне странным, и обнаружил, что добавленный знак плюс не нужен. Несколько пробелов, разделяющих слова потребляются. Причина этого, скорее всего, replaceAll том, что replaceAll повторяется до тех пор, пока шаблон не replaceAll ни с одной частью строки.
В самом деле. Знак + может сделать его немного более дружественным к процессору, потому что последовательный пробел обрабатывается в одной операции замены, но это единственное отличие в этом случае. Это действительно All , а не + который заменяет непоследовательный пробел в строке.
Вы можете сделать это просто
String newMysz = mysz.replace(" ","");
Самый простой способ сделать это - использовать org.apache.commons.lang3.StringUtils класс библиотеки commons-lang3 , например, < commons-lang3-3.1.jar ".
Используйте статический метод " StringUtils.deleteWhitespace(String str) " в вашей строке ввода, и он вернет вам строку после удаления из нее всех пробелов. Я попробовал вашу примерную строку " name=john age=13 year=2001 ", и она вернула мне именно строку, которую вы хотели - " name=johnage=13year=2001 ". Надеюсь, это поможет.
public static void main(String[] args) < String s = "name=john age=13 year=2001"; String t = s.replaceAll(" ", ""); System.out.println("s: " + s + ", t: " + t); >Output: s: name=john age=13 year=2001, t: name=johnage=13year=2001
String a="string with multi spaces "; //or this String b= a.replaceAll("\\s+"," "); String c= a.replace(" "," ").replace(" "," ").replace(" "," ").replace(" "," ").replace(" "," ");
//он отлично работает с любыми пробелами * не забывайте пробел в sting b
Использование Pattern And Matcher более динамично.
import java.util.regex.Matcher; import java.util.regex.Pattern; public class RemovingSpace < /** * @param args * Removing Space Using Matcher */ public static void main(String[] args) < String str= "jld fdkjg jfdg "; String pattern="[\\s]"; String replace=""; Pattern p= Pattern.compile(pattern); Matcher m=p.matcher(str); str=m.replaceAll(replace); System.out.println(str); >>
В java мы можем выполнить следующую операцию:
String pattern="[\\s]"; String replace=""; part="name=john age=13 year=2001"; Pattern p=Pattern.compile(pattern); Matcher m=p.matcher(part); part=m.replaceAll(replace); System.out.println(part);
для этого вам нужно импортировать следующие пакеты в свою программу:
import java.util.regex.Matcher; import java.util.regex.Pattern;
\W означает "символ без слова". Шаблон для пробельных символов \s . Это хорошо описано в Pattern javadoc.
Использовать класс apache string util лучше избегать NullPointerException
org.apache.commons.lang3.StringUtils.replace("abc def ", " ", "")
import java.util.*; public class RemoveSpace < public static void main(String[] args) < String mysz = "name=john age=13 year=2001"; Scanner scan = new Scanner(mysz); String result = ""; while(scan.hasNext()) < result += scan.next(); >System.out.println(result); > >
Сначала пробел, второй без пробела.
Есть еще пробел, который тоже существует в строках. Так что пробел, который нам может понадобиться заменить из строк.
Пример: НОРМАЛЬНОЕ ПРОСТРАНСТВО, ПРОСТРАНСТВО ТРЕХ-ЭФЕР, ПРОСТРАНСТВО
Поэтому нам нужно изменить
Чтобы удалить пробелы в вашем примере, это еще один способ сделать это:
String mysz = "name=john age=13 year=2001"; String[] test = mysz.split(" "); mysz = String.join("", mysz);
Что это значит, он преобразует его в массив с пробелами, являющимися разделителями, а затем объединяет элементы в массиве без пробелов.
Это работает очень хорошо и легко понять.
Но очень неэффективное решение. И, как вы можете видеть из других решений - это работает только для "" пространства - а не для разных видов пробелов.
есть много способов решить эту проблему. вы можете использовать функцию разделения или заменить функцию строк.
Белое пространство можно удалить с помощью функции isWhitespace из класса символов.
public static void main(String[] args) < String withSpace = "Remove white space from line"; StringBuilder removeSpace = new StringBuilder(); for (int i = 0; i> System.out.println(removeSpace); >
Разделите каждую группу текста на свою собственную подстроку и затем соедините эти подстроки. ех.
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); >
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; >
Вы можете достичь этого, не используя 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> System.out.println(sb); /*newString = str.replaceAll(" " , ""); System.out.println(newString);*/ > >
var str ="hello the dog is big" var expression = /\s+/g; var x =str.replace(expression, ""); return x;
Это работает для меня и находит белые пробелы, а не просто пространства определенного размера.
Это приведет к удалению всех пробелов.
String str="name=john age=13 year=2001"; String s[]=str.split(" "); StringBuilder v=new StringBuilder(); for (String string : s) < v.append(string); >str=v.toString();
Вы игнорируете такие вещи, как вкладки, а также все различные способы определения пробелов в Юникоде.
Ещё вопросы
- 0 $ обновить метод PUT в Angular?
- 1 Автоматизировать установку ucbrowser
- 1 Virtuoso Jena Provider Construct Query Error
- 0 MSQL: как получить 0 счетчиков вместо 1 и ноль с таблицами соединений или представлениями
- 1 Protobuf-net тратит слишком много времени в RuntimeTypeModel.TakeLock
- 0 Как отобразить ответ из базы данных на представление codeigniter в формате строки
- 0 Почему Angular не может найти мой контроллер?
- 0 Изменить аватар пользователя из аватар изображения доступны на моем сайте?
- 1 python selenium firefox, специальный символ @ для всплывающей аутентификации
- 0 Doctrine2 + Symfony2: приведение значений перед привязкой к DQL-запросу
- 0 Выполнить функцию, если не удается выполнить другую функцию в течение периода времени
- 0 Сохранить состояние Скрыть или Показать Div только для одного div, у которого было то же самое множественное div
- 1 SVG `` Неточность
- 0 JQuery триггер («клик») динамически загружаемого контента
- 1 Как создать массив из разных элементов enum
- 1 jar 2.2: есть ли замена класса GenericObjectPool.Config?
- 1 Громкость голоса, полученного с микрофона, произвольно уменьшается (Android, OpenSLES)
- 0 Функция заголовка php перенаправляет только на локальные страницы
- 0 Первый параметр необязательный в UI Router
- 1 Где разместить SwingUtilities.invokeLater в отдельном Java-приложении с поддержкой Spring?
- 0 Размер сайта резко меняется в браузере
- 0 CSS3 переходы вместо jQuery
- 0 В AngularJS как вы загружаете страницу со скрытым элементом?
- 1 отображение списка возможностей программы
- 0 как сохранить промежуточный итог 2d массива
- 0 Как провести модульное тестирование следующей функции в жасмине?
- 1 Регистрация того же типа в коллекции с Castle.Windsor дает исключение
- 1 Spring @Cacheable метод с нумерацией страниц
- 0 rails: запрос has_many для получения списка объектов
- 0 в чем разница между empty () и $ _POST [«name»] == «»; в php?
- 0 Как получить значение и идентификатор из текстовой области, которая использует строку базы данных в качестве идентификатора
- 1 Как передать несколько аргументов из фрейма данных pandas в функцию и вернуть результат в фрейм данных в определенных местах в фрейме данных
- 0 JQuery автозаполнение: я не вижу предложения
- 1 Использование HttpResponseMessage для просмотра ошибок
- 1 Сбой сборки при включении привязки данных> Ошибка: у «другого» другой корень
- 1 Tkinter: Можно ли встроить поля ввода в текстовый абзац, чтобы выполнить задачу закрытия?
- 0 Странный эффект сравнения строк PHP, это может быть сделано лучше?
- 0 Как реализовать скриптовые события для дизайна видеоигр?
- 0 как предотвратить переход курсора на следующую строку в текстовой области с помощью jquery
- 1 JSF Hibernate Критерии API
- 0 MYSQL Сложный оператор выбора запроса
- 0 о removeClass из родительского элемента
- 0 Как установить несколько цветов разных параметров в письме, отправленном из проекта C #
- 0 почему это JQuery не добавляет правильные значения в моей БД
- 0 Как связать событие клика в угловых JS с помощью requirejs?
- 1 Почему потоки не завершают выполнение в Python? Семафоры обеспечивают синхронизацию процессов, но выполнение не завершается
- 0 Класс для подключения к БД, как использовать
- 0 Выбрать количество из нескольких таблиц
- 0 Dojo dijit TabContainer - встроенный выбор с вкладками
Источник