2016-08-14 2 views
0

첫 번째 문자가 "^"인 문자열이 있습니다. 이 문자가없는 문자열을 추출하고 싶습니다. 예 : "^ coal"은 "석탄"이되어야합니다. 다음은 내가 작성한 코드이지만, 왜 작동하지 않는지는 알 수 없습니다.자바에서이 정규 표현식을 사용하여 문자열을 추출 할 수 없습니다.

public void RegEx(String s1){ 
     System.out.println(s1.substring(0,1)); //to check if i am ok. 
     if((s1.substring(0,1)).equals("^")){ 
      Pattern p = Pattern.compile("^"); 
      String[] extracted = p.split(s1); 
      for(String s: extracted){ 
       System.out.println(s); 
      } 
     } 
    } 

s1 = "^ coal". 출력 = "^ 석탄".

+4

저는 자바 스크립트 전문가는 아니지만, 첫 번째 문자를 제거하려고한다면'if' 문에서's1 = s1.substring (1);'을 할 수 없습니까? 예를 들어, "MyString".substring (1);'evaluate to' "yString"' – Santi

+0

이것은 더 큰 문제의 조각 일뿐입니다. 그래서 나는 공식적인 방법을 정말로 알 필요가있다. 그래도 고마워. –

답변

5

더 효율적입니다.

하지만 정규식을 사용하는 것이 가장 효율적인 방법은 아닙니다. 그냥 substring를 사용

if (s1.startsWith("^")) { 
    s1 = s1.substring(1); 
} 
System.out.println(s1); 

참고 :를 당신이 볼 당신이 또한 문자열을 다른 문자열로 시작하면 쉽게 확인 startsWith를 사용할 수 위.

+0

내가 내 대답을 답변으로 게시했음을 알았습니다. :) +1! – Santi

1

문자 ^은 정규식에서 중요합니다. 좋아해요.

0

indexOf 메소드를 사용하여 이것을 사용하십시오. "\\^"을 : 그것은 짧은 당신이 그것을 탈출 할 필요가 있도록 ^ 문자는 정규식에서 특별한 의미를 가지고

String s="^coal"; 
int l=s.indexOf("^"); 
System.out.println(s.substring(l+1)); 
관련 문제