2011-05-12 2 views
0

Arraylist에 문자열 그룹이 있습니다.숫자가있는 자바 문자열

숫자가 모두 인 모든 문자열을 제거하고 싶은 경우 (0.75 %), $ 1.5 .. 같은 문자는 기본적으로 문자를 포함하지 않는 모든 문자를 제거하려고합니다. 2) 콘솔에 쓰기 전에 문자열의 모든 특수 문자를 제거하고 싶습니다. 는 "하나님은 하나님을 인쇄해야 & quot; 포함하여 인쇄해야합니다. 당신이 말할 때

+1

[regex] (http://download.oracle.com/javase/tutorial/essential/regex/) 냄새가납니다. – JMelnik

+0

".. 문자를 포함하지 않는 모든 것들 .."그것이 단서입니다! '제거'를 생각하는 대신 '포함', 'A-Z'및 'a-z'를 생각하는 것은 26 + 26 알파벳입니다. –

+0

지금까지 시도한 것은 무엇입니까? – MatthewD

답변

0

을 찾을해야 찾기 ' 을 quoteIncluding"문자, Z를 통해 "당신은 의미 겠지" "와"A Z까지 "당신은 아마 정규 표현식 D1e 코멘트에서 언급 한 바와 같이 (정규식)를 사용하려면 여기 완전히 대체 방법을 사용하여 예입니다

import java.util.ArrayList; 

public class Test { 
    public static void main(String[] args) { 
     ArrayList<String> list = new ArrayList<String>(5); 
     list.add("\"God"); 
     list.add("&quot;Including"); 
     list.add("'find"); 
     list.add("24No3Numbers97"); 
     list.add("w0or5*d;"); 

     for (String s : list) { 
      s = s.replaceAll("[^a-zA-Z]",""); //use whatever regex you wish 
      System.out.println(s); 
     } 
    } 
} 

은 다음이 코드의 출력은 다음과 같습니다..

하나님
quotIncluding

NoNumbers
완전히 대체 방법 (빈 문자열이 경우) 정규식 패턴을 사용하고 두 번째 매개 변수와 일치하는 모든 대체

단어를 찾을 수 있습니다.

1

Java는 정규식을 사용하는 매우 멋진 Pattern class을 자랑합니다. 당신은 확실히 그것에 대해 읽어야합니다. 좋은 참고 가이드는 here.

코딩 솔루션을 게시하려고했지만 styfle이 저를 때려 눕혔습니다. 내가 여기에 다른 할 거라고 유일한 것은 for 루프 이내, 나는 같은 패턴과 Matcher를 클래스를 사용하는 것입니다 :

for(int i = 0; i < myArray.size(); i++){ 
    Pattern p = Pattern.compile("[a-z][A-Z]"); 
    Matcher m = p.matcher(myArray.get(i)); 
    boolean match = m.matches(); 
    //more code to get the string you want 
} 

하지만 너무 부피가 큰. styfle의 솔루션은 간결하고 쉽습니다.

+0

좋은 답변입니다. 스택 오버플로에 오신 것을 환영합니다! –

+0

대단히 고마워! 이 커뮤니티는 대단합니다. :) – SpacePyro