2011-08-10 3 views
9

replace(char, char)을 사용하여 문자 "b"의 모든 인스턴스를 아무 것도 대신 사용하지 마십시오. 예를 들어replace (char, char)를 사용하여 문자 b의 모든 인스턴스를 아무 것도 대체하지 않음

:

Hambbburger to Hamurger 

편집 :는 제약, 난 단지 대체의 더 오버로드 된 버전을 의미하지, 1.4.2을 사용할 수 있습니다!

+2

'아무것도 아닐'수 없다! 왜 당신은'replace (String, String)'을 사용할 수 없습니까? –

+0

가능한 복제본 [Java : 문자열에서 모든 문자 발생 제거] (http://stackoverflow.com/questions/4576352/java-remove-all-occurances-of-char-from-string) – dogbane

+0

안녕하세요 Dogbane, 즉 Java 5 이상에서는 1.4.2에서 사용할 수있는 오버로드 된 버전이 없습니다. –

답변

15

가이 정규 표현식에 그들을 evals 것을 그러나주의, 문자열을 사용하는 replaceAll 기능도하지만 하나를 교체 char는 잘 할 것입니다. replaceAll 장소의 문자열을 변경하지만 여분으로 새로 (String 자바에서 불변)을 생성하지 않기 때문에 replaced 변수가 필요하다고

String meal = "Hambbburger"; 

String replaced = meal.replaceAll("b",""); 

참고

여기 일례이다.

String meal = "Ham.bur.ger"; 

String replaced = meal.replaceAll(Pattern.quote("."),""); 
+0

'b'는 잘 동작하지만'.'은 안됩니다 ... – MByD

+0

@Sean, 처음 함수 이름을 놓친 다음 편집하십시오 :) –

+0

왜 대답을 변경 했습니까? String.replace()가 더 좋습니다! –

4

문자열은 변경할 수 없으므로 결과를 문자열에 할당해야합니다.

String str = "Hambbburger"; 
str = str.replace("b", ""); 

당신은 여기를 참조하십시오 자바 6. 사용하는 경우 완전히 대체가 필요하지 않습니다 : replace

+1

__knew__ '대체'오버로드가있었습니다! –

3
: 바꾸려는 문자가 정규식에 다른 의미가있는 경우

당신은 quote이 같은 첫 번째 매개 변수가 필요합니다 (예는 . 문자는 문자가 아닌 점과 일치합니다)

Hambbburger.i이 Hambbburger을 먹고 싶어 .......

public class main { 
public static void main(String args[]){ 
    String g="Hambbburger.i want to eat Hambbburger. "; 
    System.out.print(g); 
    g=g.replaceAll("b", ""); 



     System.out.print("---------After Replacement-----\n"); 
     System.out.print(g); 

} 
} 

는이 출력을 제공합니다 ....이 코드를 사용해보십시오. --------- 교체 후 ----- Hamurger.i Hamurger를 먹고 싶습니다. 문자열에서

-1

완전히 대체하기는) (대체

예를 사용하여 제대로 .IT의 항상 권 해드립니다을 작업을 doesnot : -

String s="abcdefabcdef"; 
s=s.replace("a",""); 
+0

안녕하세요. 안녕하세요. replaceAll은 괜찮습니까? 어디에서 가져 왔는지 확실하지 않습니다. 손에 버그가있는 특정 케이스가 있습니까? 또한 당신은 질문에 답을하지 않습니다 - OP는 * 문자를 제거하고 싶지만, replace (char, char)를 사용하면이를 수행 할 방법이 없습니다. – pete23

2
String text = "Hambbburger"; 
text = text.replace('b', '\0'); 

'\0'는 ASCII 코드에서 아무것도를 나타냅니다 없습니다.

+0

@Tom 그것은 Hamurger를 인쇄합니다. – Andrew

+1

내 콘솔이 명시 적으로 '\ 0' 문자를 표시하기 때문에 콘솔이 내 것과 다르게 출력합니다 (SO가 제거하므로 여기에 표시 할 수 없습니다). 따라서이 솔루션은 실행될 시스템에 따라 달라질 수 있습니다. 이상한. – Tom

관련 문제