A classe Scanner em Java fornece o método useDelimiter, permitindo que você especifique um delimitador (um caractere ou padrão) que separa fichas. No entanto, o uso de delimitadores pode ser confuso para iniciantes. Vamos resumir em termos mais simples.
Considere o snippet:
sc = new Scanner(new File(dataFile)); sc.useDelimiter(",|\r\n");
Neste exemplo, o delimitador é definido como uma combinação de uma vírgula (",") e um retorno de carro seguido por uma nova linha ("\ r\n"). O scanner usará esse delimitador para separar tokens no arquivo de dados.
O delimitador especificado em useDelimiter é uma expressão regular. Expressões regulares são padrões usados para combinar caracteres ou sequências. O delimitador ",|\r\n" especifica que um token termina com uma vírgula ou um retorno de carro seguido por uma nova linha.
Vamos dar um exemplo:
String input = "1 fish 2 fish red fish blue fish"; Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*"); System.out.println(s.nextInt()); // prints: 1 System.out.println(s.nextInt()); // prints: 2 System.out.println(s.next()); // prints: red System.out.println(s.next()); // prints: blue s.close();
Neste exemplo, o delimitador é "\sfish\s." O \\s* indica que pode haver qualquer número de espaços em branco (incluindo zero) antes ou depois da palavra "peixe". Isso significa que o scanner irá combinar e extrair tokens como "1 peixe", "2 peixes" e assim por diante.
Lembre-se de que ao usar useDelimiter em Java, é importante entender o regular expressões. Você pode encontrar tutoriais detalhados online para aprimorar seu conhecimento sobre padrões regex. Com uma compreensão adequada de delimitadores e expressões regulares, você pode analisar e extrair dados de arquivos de texto com eficiência usando a classe Scanner.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3