2015-01-13 2 views
-4

문자열의 시작 부분에 "Demo"가있는 경우에만 "DemoString"에서 "DemoString"을 다른 부분 문자열로 복제하려고합니다. 대체 할 수 없습니다. "StringDemo"의 경우입니다.자바에서는 시작 위치에있는 문자열 만 바꾸는 방법

String string = "demo string string demo"; 

if (string.startsWith("demo")) { 
    System.out.println(string.replaceFirst("demo", "xyz")); 
} 

출력 :

xyz string string demo 

업데이트 :

로서 문자열 키로 시작하면

+0

'^ Demo'이 정규식을 사용하고 문자열 데모를 교체 네가 원하는 숯으로 –

+2

String str = "DemoString"; 문자열 newString = str; if (str.startsWith ("Demo")) { newString = str.replace ("Demo", "Another"); } –

+1

@Shree이 옵션은 'DemofooDemo'에서'Demo'를 대신합니다. –

답변

3

검사 조건 후 아래와 같이 원하는 키와 제 키로 대체 replaceFirst()를 사용하고 있습니다. 조건을 추가 할 필요가 없습니다. 문자열을 대체하는 메소드를 직접 호출 할 수 있습니다.

System.out.println(string.replaceFirst("demo", "xyz")); 
-2

String text = ... 
String text2 = text.replaceAll("^Demo", "NotDemo"); 

일반 표현식의 경우 ^은 문자열의 시작 부분과 일치합니다.

String myline = line.replaceAll("^[Dd][eE][mM][Oo]", ""); 
+0

Hiya,이 방법으로 문제를 해결할 수는 있지만 ... 어떻게 작동하는지, 왜 작동하는지에 대해 약간의 설명을 해줄 수 있다면 좋을 것입니다 :) 잊지 마세요 - Stack Overflow에 초보자의 힙이 있습니다. 당신의 전문 지식에서 한두 가지를 배우십시오 - 당신에게 명백한 것이 그들에게 그렇게 좋지 않을 수도 있습니다. – Vogel612

+0

나는 동의 할 것이다; 이 코드가 질문에 어떻게 대답하는지 문서화하십시오. – rfornal

-1

뭔가를 시도

public class HelloWorld{ 

public static void main(String []args){ 

    String s = "DemoString StringDemo DemoString"; 

    String[] str = s.split(" "); 

    for(String ss : str) 
    { 
     int index = ss.indexOf("Demo"); //check if "Demo" is at the start of the string 
     if(index == 0) 
     { 
      ss = ss.replace("Demo","Demo2"); 
     } 
     System.out.println(ss); 
    } 
} 
} 

출력 : Demo2String StringDemo Demo2String

+1

''^ (? i) demo "' –

+0

히야,이게 문제를 해결할 수는 있지만 복잡하지는 않습니다. 어떻게 그리고 왜 작동하는지 조금 설명해 주면 좋을 것 같습니다 :) 잊지 마세요 - Stack Overflow에 초보자가 많으며 전문 지식에서 두 가지를 배울 수 있습니다. 분명하지 않은 점이 있습니다. – Vogel612

2

체크 아웃이 짧은 예 :

+0

하지만'DemoStringDemo'는'Demo2StringDemo2'로 바뀔 것입니다, 맞습니까? – slartidan

+0

예, 그렇습니다. 데모로 시작하기 때문에. 당신은'replace()'대신'replaceFirst()'를 사용할 수 있습니다. – j4rey89

관련 문제