Basta dar a você uma string contendo números, como:
String S = "EERT343DFG56756DTRY66FGGG89DFGF";
Então, como extraímos os números? Existem aproximadamente os seguintes métodos, expressões regulares, classes de coleta e métodos fornecidos pelas classes de string.
1 métodos fornecidos pela classe String:
Exercício de teste do pacote; importar java.util.*; classe pública get_stringnum {/** ** 2016.10.25*/public static void main (string [] args) {string str = "love23next234csdn3423javaeye"; str.trim () (); i = 0; i <str.Length (); i ++) {if (str.charat (i)> = 48 && str.charat (i) <= 57) {str2+= str.Charat (i);}}} System.out.println (str2);}} ousadia: 23244423Este método tem uma desvantagem óbvia, ele só pode extrair todos os números juntos, mas não separadamente. Claro, também pode ser melhorado. Amigos interessados podem experimentar.
2 expressões regulares
importar java.util.*; importar java.util.regex.matcher; importar java.util.regex.pattern; public classe get_stringnum {/** ***2016.10.25*/public static void main (string [] args) {string a = "love23Next24csnn3; regex = "[^0-9]"; Padrão p = padrão.compile (regex); Matcher M = P.Matcher (A); System.out.println (M.Replaceall (""). TRIM ());}} Saída: 232343423Padrão, o Matcher são duas classes no pacote de software java.util.regex. Você pode verificar a API para uso específico. Além disso, os números não podem ser extraídos individualmente.
3 biblioteca de aula de coleção
importar java.util.*; importar java.util.regex.matcher; importar java.util.regex.pattern; public classe get_stringnum {/** ***2016.10.25*/public static void main (string [] args) {string a = "love23next234242; ArrayList <String> (); padrão p = padrão.compile ("[^0-9]"); Matcher m = P.Matcher (a); String result = M.Replaceall (""); para (int i = 0; i <resultado.Length (); i ++) {digitlist.add (Result.Substring (i, i, i, i, i ++) { i+1));} System.out.println (digitlist);}} saída: [2, 3, 2, 3, 4, 3, 4, 2, 3] A mesma ideia:
importar java.util.*; importar java.util.regex.matcher; importar java.util.regex.pattern; classe pública get_stringnum {/** ** 2016.10.25*/public static void main (string [] args) {string a = "love23Next24csn43; List <string> ss = new ArrayList <String> (); para (String SSS: S.Replaceall ("[^0-9]", ","). Split (",")) {if (sss.length ()> 0) ss.add (ss); } System.out.print (SS); }} saída: [2, 3, 2, 3, 4, 3, 4, 2, 3]É óbvio que, usando expressões regulares, podemos extrair números separadamente.
Há também uma resposta para encontrar, procurando os documentos, como segue:
/ ** *Obtenha o número do texto da string *@param text *@return */ publicstatic list <long> getDigit (text string) {list <long> digitList = new ArrayList <long> (); Padrão p = padrão.compile ("(// d+)"); Matcher M = P.Matcher (texto); while (m.find ()) {string find = m.group (1) .toString (); digitlist.add (long.valueof (find)); } retornar digitlist; }Os dois métodos de julgamento que correspondem usando expressões regulares são os seguintes;
// Determine se todas as cordas são números públicos booleanos IsDigit (String strnum) {return strnum.matches ("[0-9] {1,}"); } // Determine se todas as cordas são números public boolean iSdigit (string strnum) {padrony padring = padring.compile ("[0-9] {1,}"); Matcher Matchaer = Pattern.Matcher ((Charsequence) strnum); return matcher.matches (); } // Interceptar o número public string getNumbers (conteúdo da string) {padrony padrony = padring.compile ("// d+"); Matcher Matchaer = Pattern.Matcher (Content); while (matcher.find ()) {return Matcher.group (0); } retornar ""; } // Interceptar string public não-Number String SplitNotNumber (String Content) {padrão padrão = Pattern.compile ("// d+"); Matcher Matchaer = Pattern.Matcher (Content); while (matcher.find ()) {return Matcher.group (0); } retornar ""; }O exposto acima é o conteúdo inteiro do exemplo simples dos números de extração de Java de strings trazidas a você pelo editor. Espero que todos possam apoiar mais wulin.com ~