형식으로 - Java의 문자열에서 숫자가 아닌 문자를 제거하려면 어떻게합니까?




자바 첫번째 문자 제거 (6)

String 클래스의 Split() 메서드를 사용하고 하나 이상의 숫자가 아닌 "\ D +"의 정규식을 전달해야합니다.

myString.split("\\D+");

https://code.i-harness.com

나는 긴 끈이있다. 숫자를 배열로 분할하는 정규 표현식은 무엇입니까?


당신은 아래와 같은 재귀 적 방법을 사용할 수 있습니다 :

public static String getAllNumbersFromString(String input) {
        if (input == null || input.length() == 0) {
            return "";
        }
        char c = input.charAt(input.length() - 1);
        String newinput = input.substring(0, input.length() - 1);

            if (c >= '0' && c<= '9') {
            return getAllNumbersFromString(newinput) + c;

        } else {
            return getAllNumbersFromString(newinput);
        }
    } 

문자열에서 숫자가 아닌 문자를 모두 제거하는 방법

String newString = oldString.replaceAll("[^0-9]", "");

이것은 Flex SDK 4.14.0에서 작동합니다

myString.replace (/ [^ 0-9 && ^.] / g, "");


Java 8 컬렉션 스트림 :

StringBuilder sb = new StringBuilder();
test.chars().mapToObj(i -> (char) i).filter(Character::isDigit).forEach(sb::append);
System.out.println(sb.toString());

Regex를 사용하지 않고 간단한 방법 :

public static String getOnlyNumerics(String str) {
    if (str == null) {
        return null;
    }
    StringBuffer strBuff = new StringBuffer();
    char c;
    for (int i = 0; i < str.length() ; i++) {
        c = str.charAt(i);
        if (Character.isDigit(c)) {
            strBuff.append(c);
        }
    }
    return strBuff.toString();
}






regex