2012-12-04 2 views
0

에 문자열에서 특정 값을 검색하는 방법 :내가 값을 포함하는 문자열 필드가 어떻게 자바

String a = "Local/[email protected],1"; 

지금 내 필요에 따라 경찰 내가 위의 문자열 필드에서 추출한 값 '5028'을 필요로합니다.

+6

아무 것도 해보지 않으셨습니까? 예를 들어 RegExp? –

+0

값은 항상 같은 위치에서 시작합니까, 아니면 항상'/'과'@'사이에 있습니까? 아니면 완전히 다른 규칙입니까? –

+0

선생님, 문자열 값 나누기로 시도했습니다 – Amit

답변

3

이 각 /@에 문자열을 분할합니다.

String a = "Local/[email protected],1"; 
System.out.println(a.split("[/@]")[1]); 
0

형식이 일치하는 경우 부분 문자열 방법을 사용하거나 /와 @를 사용하여 문자열을 분할 한 다음 토큰 배열에서 두 번째 값을 가져올 수 있습니다.

1

값을 검색하려면 String#substring 함수를 사용하십시오. 시작과 끝 인덱스를 매개 변수로 전달해야합니다. 이 캐릭터 라인이 지정된 형식에 항상있는 경우

String a = "Local/[email protected],1"; 
System.out.println(a.substring(a.indexOf('/')+1, a.indexOf('@'))); 
+0

-1은 매직 넘버를 허용하고 실제로는 일반적인 해결책이 아닙니다. 또한 오류가 발생하기 쉬운 솔루션입니다. – sakthisundar

+0

@sakthisundar - 코드가 업데이트되었습니다. –

0

당신이 시도 할 수 있습니다 :

String temp=a.split("@")[0]; 
System.out.println(temp.substring(temp.length()-4,temp.length())); 
0

사용 REGEX :

String a = "Local/[email protected],1"; 
     Pattern p = Pattern.compile("\\d+"); 
     Matcher m = p.matcher(a); 
     System.out.println(m.find() + " " + m.group()); 

이 사항 String.split 사용 : 당신의 문자열 형식이 고정되어있는 경우

String a = "Local/[email protected],1"; 
     String[] split = a.split("/"); 
     System.out.println(split[1].split("@")[0]); 
0

, 당신은 사용할 수 있습니다

String a = "Local/[email protected],1"; 
a = a.substring(a.indexOf('/') + 1, a.indexOf('@')); 
System.out.println(a); 
+0

Sir i have more case String a = "Local/5028-from-queue-bd7f, 1"; PLZ 코드가 – Amit

+0

에서이 조건을 결합하는 방법을 알려주십시오. 문자열이 일종의 고정 된 경우 다시 시도하십시오.'a.substring (a.indexOf ('/') + 1, a.indexOf ("from") - 둘 다 처리한다. –

관련 문제