En la sección anterior aprendimos el primer método: analizar cadenas usando delimitadores predeterminados. En esta sección aprendemos el segundo método: analizar cadenas usando expresiones regulares como delimitadores .
Necesitamos saber que si el objeto Escáner quiere usar la marca de separación predeterminada, que es un espacio, para analizar los datos en la cadena, es necesario usar espacios para separar los datos en la cadena de otros caracteres; no podremos analizar los datos que necesitamos.
De hecho, el objeto Scanner también puede llamar a métodos:
useDelimiter(expresión regular);
Utilice expresiones regulares como delimitadores, es decir, cuando el objeto Escáner analiza cadenas, utiliza cadenas que coinciden con la expresión regular como delimitadores.
Por ejemplo, analice la cadena usando la expresión regular (coincide con todas las cadenas no numéricas) String regex = [^0123456789.]+ como marca delimitadora.
importjava.util.*;publicclassMain{publicstaticvoidmain(Stringargs[]){Stringcost=Lista de facturas telefónicas: tarifa de llamada local 66,66 yuanes, tarifa de llamada de larga distancia 166,66 yuanes, tarifa de mensaje de texto 16,16 yuanes;Scannerscanner=newScanner(costo);escáner. useDelimiter([^0123456789. ]+);//el escáner establece la marca de separación doublesum=0; while(scanner.hasNext()){try{doubleprice=scanner.nextDouble();sum=sum+price;System.out. println(precio);}catch (InputMismatchExceptionexp){Stringt=scanner.next();}}System.out.println(Costo total de comunicación: +sum+yuan);}}
Los resultados de ejecución son los siguientes:
66.66166.6616.16 Costo total de comunicación: 249,48 yuanes