다음과 같은 숫자가 포함 된 문자열 만 제공하십시오.
문자열 s = "eert343dfg56756dtry66fggg89dfgf";
그렇다면 숫자를 어떻게 추출합니까? 대략 다음 방법, 정규 표현식, 컬렉션 클래스 및 문자열 클래스가 제공하는 방법이 있습니다.
문자열 클래스에 의해 제공된 방법 :
패키지 테스트 연습; import java.util.*; public class get_stringnum {/***2016.10.25*/public static void main (string [] args) {string str = "love23next234csdn3423javaeye"; str = trim (); String Str2 = " i = 0; i <str.length (); i ++) {if (str.charat (i)> = 48 && str.charat (i) <= 57) {str2+= str.charat (i);}}} system.out.println (str2);}} 출력 : 232343423이 방법은 명백한 단점이 있으며 모든 숫자 만 함께 추출 할 수 있지만 별도로는 아닙니다. 물론, 개선 될 수도 있습니다. 관심있는 친구들은 그것을 시도 할 수 있습니다.
2 정기 표현
import java.util.*; import java.util.regex.matcher; import java.util.regex.pattern; public class get_stringnum {/***2016.10.25*/public static void main (string a = ""love23next234csdn3423javaeye "; Regex = "[^0-9]"; Pattern P = Pattern.compile (Regex); 매치 자 m = p.matcher (a); System.out.println (M.replaceall ( ""). trim ());}} 출력 : 232343423Pattern, Matcher는 java.util.regex 소프트웨어 패키지의 두 클래스입니다. 특정 사용법을 위해 API를 확인할 수 있습니다. 또한 숫자는 개별적으로 추출 할 수 없습니다.
3 컬렉션 클래스 라이브러리
import java.util.*; import java.util.regex.matcher; import java.util.regex.pattern; public class get_stringnum {/***2016.10.25*/public static void main (string a = "string a ="love23next234csdn3423javaeye "; ArrayList <string> (); Pattern P = Pattern.comPile ( "[^0-9]"); MATCHER M = P.MATCHER (a); String result = M.Replaceall ( ""); for (int i = 0; i <result.length (); i ++) {digitlist.add (result.substring (i,) i+1));} system.out.println (digitlist);}} 출력 : [2, 3, 2, 3, 4, 3, 4, 2, 3] 같은 생각 :
import java.util.*; import java.util.regex.matcher; import java.util.regex.pattern; public class get_stringnum {/***2016.10.25*/public static void main (string a = ""love23next234csdn3423javaeye "; List <string> ss = new ArrayList <string> (); for (string sss : s.replaceall ( "[^0-9]", ","). split ( ",")) {if (sss.length ()> 0) ss.add (ss); } system.out.print (ss); }} 출력 : [2, 3, 2, 3, 4, 3, 4, 2, 3]정규 표현식을 사용하여 별도로 숫자를 추출 할 수 있습니다.
다음과 같이 문서를 찾아 찾을 수있는 답변도 있습니다.
/ ** *문자열 텍스트에서 숫자를 가져옵니다 *@param text *@return */ publicstatic list <long> getDigit (문자열 텍스트) {list <long> digitlist = new arraylist <long> (); 패턴 p = pattern.compile ( "(// d+)"); 매치 자 m = p.matcher (텍스트); while (m.find ()) {String find = m.group (1) .toString (); digitlist.add (long.valueof (find)); } return digitlist; }정규 표현을 사용하여 일치하는 두 가지 판단 방법은 다음과 같습니다.
// 모든 문자열이 숫자인지 결정 공개 부울 isdigit (String strnum) {return strnum.matches ( "[0-9] {1,}"); } // 모든 문자열이 숫자인지 확인 public boolean isdigit (String strnum) {Pattern Pattern = Pattern.comPile ( "[0-9] {1,}"); 매치 업체 매치 자 = Pattern.Matcher ((charSequence) strnum); return matcher.matches (); } // 숫자 공개 문자열 getNumbers (문자열 내용) {Pattern Pattern = Pattern.comPile ( "// d+"); 매치기 매치 자 = Pattern.Matcher (컨텐츠); while (matcher.find ()) {return matcher.group (0); } 반품 ""; } // NOMBER가 아닌 공개 문자열 splitNotNumber (String content) {Pattern Pattern = Pattern.comPile ( "// d+"); 매치기 매치 자 = Pattern.Matcher (컨텐츠); while (matcher.find ()) {return matcher.group (0); } 반품 ""; }위는 편집자가 가져온 문자열에서 숫자를 추출하는 Java의 간단한 예제의 전체 내용입니다. 모두가 wulin.com을 더 지원할 수 있기를 바랍니다 ~