2014-09-11 6 views
0

문자열에서 모든 특수 문자를 제거하려면 stackoverflow에 제공된 많은 옵션을 시도했지만 그 중 아무 것도 나를 위해 작동하지 않습니다. 여기 java의 문자열에서 모든 특수 문자를 제거하는 방법은 무엇입니까?

내 코드입니다 : 당신이 비슷한 이미 요청 받았다

String value = "[email protected]() world"; 
value = value.replaceAll("[^A-Za-z0-9]", ""); 
System.out.println(value) // => helloworld 

사용할 수 있습니다

public class convert { 

    public static void main(String[] args) { 
     try {  
      List<List<String>> outerList = new ArrayList<List<String>>(); 
      outerList.add(new ArrayList<String>(asList("11-","2"))); 
      outerList.add(new ArrayList<String>(asList("(2^","1"))); 
      outerList.add(new ArrayList<String>(asList("11","3)")));  

      int i,j; 
      for(i=0;i<outerList.size();i++){  
        for(j=0;j<outerList.get(0).size();j++){  
          outerList.get(i).get(j).replaceAll("[^\\w\\s]", ""); 
          if(outerList.get(i).get(j).matches("-?\\d+"){ 
           continue; 
          }else{ 
           System.out.println("special characters not removed"); 
           System.exit(0); 
          } 
        } 
      } 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 
+3

특수 문자는 무엇입니까? 영숫자가 아닌가요? 명령들? 범위 내 [32..255] - ASCII 너트 명령이 아닙니까? –

답변

3

(단순) 오류가 있다는 것입니다 s.replaceAll(...)s을 변경하지 않지만 새로운 변경된 문자열을 생성합니다 :

아파치 코 몬즈 랭 ( http://commons.apache.org/proper/commons-lang/)에서 0
String s = outerList.get(i).get(j).replaceAll("[^\\w\\s]", ""); 
outerList.get(i).set(j, s); 
+0

그것은 작동합니다 ....... –

0

숫자하지 않는 경우 here

+0

나는 이것을 사용했지만 제대로 작동하지 않았다. –

+0

'A-Za-z0-9' 대신'\ p {Alnum}'을 사용할 수 있음에 유의하라. –

+0

@AnoopDobhal'String'은 불변이므로,'String'에 값을 다시 지정해야한다는 것을 잊지 마십시오 : –

관련 문제