Передавать только действительные символы в Java - PullRequest
0 голосов
/ 29 декабря 2011

Я хочу сделать что-то вроде этого:

String myString="123EDCBAabcde";
myString=myString.passValidChars("ABCDE");

now myString is "EDCBA"

Есть ли уже функция, которая передает только действительные символы и удаляет остальные? Если нет, то какой лучший способ сделать это?

С наилучшими пожеланиями.

Ответы [ 6 ]

4 голосов
/ 29 декабря 2011
myString = myString.replaceAll("[^ABCDE.]+", "");
3 голосов
/ 29 декабря 2011

Это триал для реализации.

  • Начните с пустого StringBuilder.
  • Итерация по каждому символу myString.
  • Если символ содержится в строке действительных символов, добавьте его в StringBuilder.
  • Преобразуйте StringBuilder в строку.
  • Готово.
1 голос
/ 29 декабря 2011
String string = "123EDCBAabcde";

Pattern pattern = Pattern.compile("[ABCDE]");
Matcher mach = pattern.matcher(string);

StringBuffer str = new StringBuffer();
while(mach.find()){
    str.append(mach.group());
}
string = str.toString(); // Now string is "EDCBA"
0 голосов
/ 29 декабря 2011

Относится к ответу @JB Nizet:

    static String passValidChar(String in, String validChar){
        StringBuilder strBuilder = new StringBuilder();
        for(char c : in.toCharArray()){
            if(validChar.indexOf(String.valueOf(c)) != -1){
                strBuilder.append(c);
            }
        }
        return strBuilder.toString();
    }

    public static void main(String [] args){
        System.out.println(passValidChar("123EDCBAabcde", "EDCBA"));    
    }
0 голосов
/ 29 декабря 2011

Pattern.compile("[^A-Z]").matcher(myString).replaceAll("")

0 голосов
/ 29 декабря 2011

Библиотека гуавы (коллекции Google) имеет точный класс, который вам нужен: CharMatcher

http://guava -libraries.googlecode.com / файлы / Guava_for_Netflix_.pdf

Страницы с 12 по 19.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...