>Java >java지도 시간 >Java의 `Scanner.useDelimiter()`를 정규 표현식과 함께 사용하여 입력을 분할하려면 어떻게 해야 합니까?

Java의 `Scanner.useDelimiter()`를 정규 표현식과 함께 사용하여 입력을 분할하려면 어떻게 해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-26 00:08:11255검색

How Can Java's `Scanner.useDelimiter()` Be Used with Regular Expressions to Split Input?

정규 표현식을 사용한 Scanner.useDelimiter 이해

Java의 Scanner API에서 useDelimiter() 메소드를 사용하면 구분 기호를 지정하여 토큰에 텍스트를 입력합니다. 그러나 공백 이외의 구분 기호를 사용할 수 있으므로 정규식(regex) 패턴에 대한 이해가 필요합니다.

useDelimiter()의 정규식 패턴

구분 기호를 사용하려면 useDelimiter()를 사용하려면 정규식 패턴을 제공해야 합니다. 이 패턴은 토큰을 구분해야 하는 문자 또는 시퀀스를 정의합니다.

예를 들어 아래 코드 조각은 구분 기호 "|,|rn"을 사용하여 쉼표(",") 또는 새 줄을 기준으로 입력을 분할합니다. (rn):

sc = new Scanner(new File(dataFile));
sc.useDelimiter(",|\r\n");

이는 스캐너가 쉼표와 새 줄을 구분 기호로 처리하여 입력을 토큰.

useDelimiter()가 정규식 패턴과 어떻게 작동하는지 설명하려면 다음 예를 고려하세요.

String input = "1 fish 2 fish red fish blue fish";

// Use "\s*fish\s*" as the delimiter to split the input
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

여기서 구분 기호는 "sfishs"는 공백 문자가 0회 이상 반복되는 것과 일치합니다. ("s*") 뒤에 "fish"라는 단어가 오고 다시 공백이 0회 이상 반복됩니다. 결과적으로 입력은 구분 기호를 기준으로 토큰으로 분할되며 스캐너는 원하는 값을 추출할 수 있습니다.

추가 리소스

useDelimiter( ) 및 정규식 패턴에 대해서는 다음 리소스를 참조하세요.

  • 스캐너 API: https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html
  • 정규식 튜토리얼: https://www.vogella.com/tutorials/JavaRegularExpressions/article. html
  • 정규식 빠른 참조: https://www.regular-expressions.info/quickref.html

위 내용은 Java의 `Scanner.useDelimiter()`를 정규 표현식과 함께 사용하여 입력을 분할하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.