Na seção anterior aprendemos o primeiro método - analisar strings usando delimitadores padrão. Nesta seção aprendemos o segundo método - analisar strings usando expressões regulares como delimitadores .
Precisamos saber que se o objeto Scanner quiser usar a marca de separação padrão, que é um espaço, para analisar os dados na string, é necessário usar espaços para separar os dados na string de outros caracteres, caso contrário ele irá não sermos capazes de analisar os dados de que precisamos.
Na verdade, o objeto Scanner também pode chamar métodos:
useDelimitador(expressão regular);
Use expressões regulares como delimitadores, ou seja, quando o objeto Scanner analisa strings, ele usa strings que correspondem à expressão regular como delimitadores.
Por exemplo, analise a string usando a expressão regular (corresponde a todas as strings não numéricas) String regex = [^0123456789.]+ como marca delimitadora.
importjava.util.*;publicclassMain{publicstaticvoidmain(Stringargs[]){Stringcost=Lista de contas telefônicas: taxa de chamada local 66,66 yuan, taxa de chamada de longa distância 166,66 yuan, taxa de mensagem de texto 16,16 yuan;Scannerscanner=newScanner(custo);scanner. useDelimiter([^0123456789. ]+);//scanner define a marca de separação doublesum=0;while(scanner.hasNext()){try{doubleprice=scanner.nextDouble();sum=sum+price;System.out. println(price);}catch (InputMismatchExceptionexp){Stringt=scanner.next();}}System.out.println(Custo total de comunicação: +soma+yuan);}}
Os resultados da execução são os seguintes:
66.66166.6616.16 Custo total de comunicação: 249,48 yuans