Solo dale una cadena que contiene números, como:
Cadena s = "eert343dfg56756dtry66fggg89dfgf";
Entonces, ¿cómo extraemos los números? Existen aproximadamente los siguientes métodos, expresiones regulares, clases de recolección y métodos proporcionados por las clases de cadena.
1 Métodos proporcionados por la clase de cadena:
ejercicio de prueba de paquete; import java.util.*; public class get_stringnum {/***2016.10.25*/public static void main (string [] args) {String str = "love23Next234csdn3423Javaeye"; str = str.trim (); string str2 = "; if (str! = null &&!" ") i = 0; i <str.length (); i ++) {if (str.charat (i)> = 48 && str.charat (i) <= 57) {str2+= str.charat (i);}}} system.out.println (str2);}} salida: 23234423Este método tiene una desventaja obvia, solo puede extraer todos los números juntos, pero no por separado. Por supuesto, también se puede mejorar. Los amigos interesados pueden probarlo.
2 expresiones regulares
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 [] args) {string a = "love23Next234csdn3423javaeye"; regex = "[^0-9]"; Patrón p = patrón.compile (regex); Matcher m = p.matcher (a); System.out.println (M.Replaceall (""). Trim ());}} Salida: 232343423Patrón, Matcher son dos clases en el paquete de software java.util.regex. Puede consultar la API para su uso específico. Además, los números no se pueden extraer individualmente.
3 biblioteca de clases de recolección
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 [] args) {string a = "love23Next234csdn3423javaeye"; ArrayList <String> (); Pattern P = Pattern.Compile ("[^0-9]"); Matcher M = P.Matcher (a); String Result = M.ReplaceAll (""); para (int i = 0; i <result.length (); i ++) {digitlist.add (resultado.substring (i, i+1));} system.out.println (digitList);}} Salida: [2, 3, 2, 3, 4, 3, 4, 2, 3] Misma idea:
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 [] args) {String a = "love23Next234csdn3423javaeye"; Lista <String> ss = new ArrayList <String> (); para (String sss: s.replaceall ("[^0-9]", ","). Split (",")) {if (sss.length ()> 0) ss.add (ss); } System.out.print (SS); }} Salida: [2, 3, 2, 3, 4, 3, 4, 2, 3]Es obvio que usando expresiones regulares podemos extraer números por separado.
También hay una respuesta para encontrar buscando los documentos, como sigue:
/ ** *Obtenga el número de la cadena Text *@param Text *@return */ publicstatic List <Long> getDigit (texto de cadena) {list <Long> digItList = new ArrayList <Long> (); Patrón p = patrón.compile ("(// d+)"); Matcher m = p.matcher (texto); while (m.find ()) {string find = m.group (1) .ToString (); digitList.Add (long.ValueOf (encontrar)); } return digItList; }Los dos métodos de juicio que coinciden con expresiones regulares son los siguientes;
// Determinar si todas las cadenas son números públicos boolean isdigit (string strnum) {return strnum.matches ("[0-9] {1,}"); } // Determinar si todas las cadenas son números públicos boolean isdigit (string strnum) {patrón patrón = patrón.compile ("[0-9] {1,}"); Matcher matcher = Pattern.Matcher ((CharSequence) Strnum); return matcher.matches (); } // interceptar el número de cadena pública getNumbers (String Content) {Pattern Pattern = Pattern.Compile ("// d+"); Matcher matcher = patrón.matcher (contenido); while (matcher.find ()) {return matcher.group (0); } devolver ""; } // interceptar no number public string splitNotNotNumber (String Content) {Pattern Pattern = Pattern.Compile ("// D+"); Matcher matcher = patrón.matcher (contenido); while (matcher.find ()) {return matcher.group (0); } devolver ""; }Lo anterior es todo el contenido del simple ejemplo de Java que extrae números de cadenas que le presentan el editor. Espero que todos puedan apoyar a Wulin.com más ~