2013-02-22 14 views
3

작은 따옴표가있는 문자열이 있습니다. 작은 따옴표를 2 개의 작은 따옴표로 바꾸고 싶습니다. 나는문자열의 작은 따옴표를 다른 작은 따옴표로 바꿉니다.

String s="Kathleen D'Souza"; 

s.replaceAll("'","''"); 

s.replaceAll("\'","\'\'"); 

s.replace("'","''"); 

s.replace("\'","\'\'"); 

를 사용하여 시도하지만 작은 따옴표는이 작은 따옴표로 대체지고 있지 않습니다.

+0

왜? 나는 항상 이와 같은 질문에 대해 매우 의심 스럽다. 나는 보통 그들이 할 필요가없는 일들을하고 싶어한다는 것을 알게된다. – EJP

+0

최대 절전 모드 쿼리에서 사용하기 전에 작은 따옴표를 이스케이프 처리해야합니다. 그 이유는 2 개의 작은 따옴표를 대체하려고합니다. – Vidya

+1

@EJP 이것은 매우 합법적 인 질문입니다. SQL 쿼리를 이스케이프 처리하는 것은 항상 좋은 일입니다. 그 때까지 누군가 자동으로 이스케이프 처리되는 더 나은 기술로 이동할 수 있기 때문에 문자열 교체 만 수행 할 수 있습니다. OWASP 상위 10 위. – Brain2000

답변

0

Strings은 변경할 수 없습니다. 당신의 StringreplaceAll의 결과를 할당합니다

s = s.replaceAll("'","''"); 
4

s

String s="Kathleen D'Souza"; 
s = s.replaceAll("'","''"); 
0
String s="Kathleen D'Souza"; 
s= s.replace("'", "''"); 

시도 문자열 번호로 대체 문자열을 할당 교체(). 모든 'single'과 'double'을 대체합니다.

2

의 = "테스트 '테스트"를 시도하십시오; 연속적인 작은 따옴표가 두 배가됩니다 주어진 솔루션

`s.replaceAll("'","\"");`  => test " test 

`s.replaceAll("'","''");`  => test '' test 
0

참고, 그렇게 캐슬린 D' 수자을 '' ''수자은 캐슬린 D로 변한다 '. (나는 사용자가 이와 같이 능숙해진 것을 보았습니다.) 이것이 우려되는 부분 인 경우 연속적인 작은 따옴표를 다음과 같이 일치시킬 수 있습니다.

s = s.replaceAll("''*","''"); 
관련 문제