Ответ 1
Использование:
String str = "whatever";
str = str.replaceAll("[,.]", "");
replaceAll принимает регулярное выражение, Это:
[,.]
... ищет каждую запятую и/или период.
Например, я извлекаю текст String из текстового файла, и мне нужны эти слова для формирования массива. Однако, когда я делаю все это, некоторые слова заканчиваются запятой (,) или полной остановкой (.) Или даже имеют к ним скобки (что совершенно нормально).
Что я хочу сделать, так это избавиться от этих символов. Я пытался сделать это, используя эти предопределенные методы String в Java, но я просто не могу обойти это.
Использование:
String str = "whatever";
str = str.replaceAll("[,.]", "");
replaceAll принимает регулярное выражение, Это:
[,.]
... ищет каждую запятую и/или период.
Перенесите переменную в подстроку:
s = s.substring(0, s.length() - 1)
Также альтернативный способ решения вашей проблемы: вы также можете рассмотреть возможность использования StringTokenizer для чтения файла и установки разделителей быть персонажами, которых вы не хотите быть частью слов.
Чтобы удалить последний символ, сделайте Mark Byers
s = s.substring(0, s.length() - 1);
Кроме того, другим способом удаления символов, которые вам не нужны, является использование метода .replace(oldCharacter, newCharacter)
.
как в:
s = s.replace(",","");
и
s = s.replace(".","");
Вы не можете изменить строку в Java. Они неизменны. Все, что вы можете сделать, это создать новую строку, которая является подстрокой старой строки, минус последний символ.
В некоторых случаях вместо этого может помочь вам StringBuffer.
Лучший метод - это то, что объясняет Марк Байерс:
s = s.substring(0, s.length() - 1)
Например, если мы хотим заменить\на пробел "" на ReplaceAll, он не работает нормально
String.replaceAll("\\", "");
или
String.replaceAll("\\$", ""); //if it is a path
Обратите внимание, что границы слов также зависят от Locale. Я думаю, что это лучший способ сделать это, используя стандартный java.text.BreakIterator. Вот пример из учебника java.sun.com.
import java.text.BreakIterator;
import java.util.Locale;
public static void main(String[] args) {
String text = "\n" +
"\n" +
"For example I'm extracting a text String from a text file and I need those words to form an array. However, when I do all that some words end with comma (,) or a full stop (.) or even have brackets attached to them (which is all perfectly normal).\n" +
"\n" +
"What I want to do is to get rid of those characters. I've been trying to do that using those predefined String methods in Java but I just can't get around it.\n" +
"\n" +
"Every help appreciated. Thanx";
BreakIterator wordIterator = BreakIterator.getWordInstance(Locale.getDefault());
extractWords(text, wordIterator);
}
static void extractWords(String target, BreakIterator wordIterator) {
wordIterator.setText(target);
int start = wordIterator.first();
int end = wordIterator.next();
while (end != BreakIterator.DONE) {
String word = target.substring(start, end);
if (Character.isLetterOrDigit(word.charAt(0))) {
System.out.println(word);
}
start = end;
end = wordIterator.next();
}
}
Источник: http://java.sun.com/docs/books/tutorial/i18n/text/word.html
Вы можете использовать метод replaceAll()
:
String.replaceAll(",", "");
String.replaceAll("\\.", "");
String.replaceAll("\\(", "");
и т.д..