2014-04-22 2 views
0
에 문자를 대체

안녕 나는 문자열에 문자를 교체하고 싶습니다. 내 문제는 처음에 당신이 내 문자가 '+', 예를 들면 때 어떤 경우에는 내가 오류 메시지가 그래서입니다 숯불 알고 없다는 것입니다. 내 char가 정규 표현식으로 해석되기를 원하지 않는다. 그래서 어떻게해야 하나?문자열

String test = "something"; 
char ca = input.chatAt(0); 
input = input.replaceAll("" + ca, ""); 

나는 당신이 날 도울 수 있기를 바랍니다 :

월 코드는 다음과 같이해야한다.

+0

당신이 무엇을 원하는가를? – aelor

+0

리터럴 문자열을 다른 리터럴 문자열로 대체하려면'String.replace (from, to)'를 사용하십시오. 이러한 쉬운 솔루션을 찾으려면 javadoc을 읽어야합니다. –

+0

내 코드는 '+', '*', '?'등의 모든 문자와 완벽하게 작동하지만 이러한 문자로도 가능해야합니다. – user3025417

답변

2

그냥 다음 정규식을 사용하지 마십시오.

input = input.replace(String.valueOf(ca), ""); 

StringreplaceAll 방법은 인수로서 일반 식의 표현 String 걸린다.

replace 방법은하지 않습니다.

API를 참조하십시오. (결과가 "XYZ"가 아니라 "ZXY"것)은 "ZZZ"문자열> "XY"-

0

는 사실 방법은 당신이 교체 할 때 경우에 잠재적으로 모호 교체 "ZZ"를 말할 수 있습니다.

차례로 replaceAll이 더 유연하며 동작이 엄격히 결정됩니다. 말할 것도없이, 그것은 더 비싸다. 을 대체한다.

확실히,을 대체 귀하의 경우 최선의 선택입니다.

0

당신은 (숯불 oldChar, 숯불 newChar에) String 클래스의 기능을 대체 사용하거나 아래의 기능을 사용할 수 있습니다

String replaceChar(String input, char oldChar, char newChar){ 
    StringBuffer sb = new StringBuffer();  
    for(int i = 0; i<input.length(); i++){ 
     char c = input.charAt(i); 
     if(c == oldChar) 
      sb.append(newChar); 
     else 
      sb.append(c); 
    } 
    return sb.toString(); 
}