|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
java.lang.Objectjava.util.Scanner
public final class Scanner
정규 표현을 사용해 원시형 및 캐릭터 라인의 구문 분석이 가능한, 단순한 텍스트 스캐너입니다.
Scanner
는, 단락 문자의 패턴을 사용해 입력을 토큰에 분할합니다. 디폴트에서는 단락지어 문자는 공백 문자입니다. 결과적으로 얻을 수 있는 토큰은, 다양한 next 메소드를 사용해, 다른 형태의 값으로 변환할 수 있습니다.
예를 들어, 다음의 코드를 사용해,System.in 로부터의 수치의 read를 사용자에게 허가할 수 있습니다.
Scanner sc = new Scanner(System.in); int i = sc.nextInt();
다른 예로서 다음의 코드를 사용해,myNumbers
파일내의 엔트리로부터 long
형을 할당할 수가 있습니다.
Scanner sc = new Scanner(new File("myNumbers")); while (sc.hasNextLong()) { long aLong = sc.nextLong(); }
스캐너는, 공백 문자 이외의 단락 문자도 사용할 수 있습니다. 다음의 예에서는, 캐릭터 라인으로부터 복수의 항목을 읽어냅니다.
String input = "1 fish 2 fish red fish blue fish"; Scanner s = new Scanner(input). useDelimiter("\\s*fish\\s*"); System.out.println(s.nextInt()); System.out.println(s.nextInt()); System.out.println(s.next()); System.out.println(s.next()); s.close();
화면에는 다음과 같이 표시됩니다.
1 2 red blue
다음의 코드에서도, 같은 출력을 생성할 수 있습니다. 이 코드에서는, 4 개의 토큰을 한 번에 구문 분석 하는 정규 표현을 사용합니다.
String input = "1 fish 2 fish red fish blue fish"; Scanner s = new Scanner(input); s.findInLine("(\\d+) fish (\\d+) fish (\\w+) fish (\\w+)"); MatchResult result = s.match(); for (int i=1; i<=result.groupCount(); i++) System.out.println(result.group(i)); s.close();
스캐너로 사용되는디폴트의 공백 단락 문자는,Character
. isWhitespace
에 의해 인식됩니다. reset()
메소드는, 스캐너의 단락 문자가 이전으로 변경되었는지 어떠했는지에 관계없이, 그 값을 디폴트의 공백 단락 문자에 리셋 합니다.
스캔 조작에 의해, 입력의 대기를 방해할 수 있는 경우가 있습니다.
next()
및 hasNext()
메소드 및 그 원시형의 companion 메소드 (nextInt()
나 hasNextInt()
등)는, 최초로 단락지어 문자 패턴에 일치하는 입력을 모두 스킵 해, 다음의 토큰을 돌려주려고 합니다. hasNext 및 next 메소드는, 어느쪽이나 더 이상의 입력의 대기를 블록 할 수 있습니다. hasNext 메소드의 블록 기능은, 관련하는 next 메소드가 블록을 실행할지 어떨지에는 관계 없습니다.
findInLine(java.lang.String)
,findWithinHorizon(java.lang.String, int)
, 및 skip(java.util.regex.Pattern)
메소드는, 단락 문자 패턴 (와)는 관계없는 것으로 동작합니다. 이러한 메소드는, 입력내의 단락 문자 (와)는 관계없는 것으로 지정된 패턴의 매칭을 시도합니다. 이 때문에, 단락 문자와 무관계한 특수한 환경에서 사용할 수 있습니다. 이러한 메소드는, 그 이상의 입력의 대기를 블록 할 수 있습니다.
스캐너가 InputMismatchException
를 throw 하면(자), 다른 메소드를 사용해 취득 또는 스킵 할 수 있도록(듯이), 스캐너는 예외의 원인이 된 토큰을 건네주지 않습니다.
단락 문자 패턴의 타입에 응해, 빈 상태(empty)의 토큰이 반환되는 일이 있습니다. 예를 들어, 패턴 「"\\s+"」는, 복수의 단락 문자 인스턴스에 일치하기 위해(때문에), 빈 상태(empty)이 아닌 토큰을 돌려줍니다. 단락 문자 패턴 「"\\s"」는, 한 번에 1 개의 공백 문자만을 건네주기 (위해)때문에, 빈 상태(empty)의 토큰을 돌려줍니다.
스캐너는,Readable
인터페이스를 구현하는 임의의 객체로부터 텍스트를 읽어낼 수가 있습니다. 기가 되는 readable 의 Readable.read(java.nio.CharBuffer)
메소드 호출이 IOException
를 throw 했을 경우, 스캐너는 입력의 마지막에 달했다고 봅니다. 기가 되는 readable 에 의해 throw 된 최신의 IOException 는,ioException()
메소드를 사용해 취득할 수 있습니다.
Scanner
가 닫혀지는 경우, 그 입력 소스가 Closeable
인터페이스를 구현하고 있으면(자), 그 소스도 닫혀집니다.
Scanner
가, 외부의 동기화를 실시하지 않고 multi-thread를 사용하는 것은 안전하지는 않습니다.
특히 명기되어 있지 않은 한,null
파라미터를 Scanner
의 몇개의 메소드에 건네주면(자),NullPointerException
가 throw 됩니다.
이 클래스의 인스턴스는, 표준의 서식에 가세해 스캐너의 로케일의 서식에서 수치를 스캔 할 수 있습니다. 스캐너의초기 로케일은, 로컬라이즈의 서식은, 다음의 파라미터로 정의됩니다. 특정의 로케일의 경우, 이것은 로케일 이 클래스의 인스턴스가 수치로서 구문 분석 가능한 캐릭터 라인은, 다음의 정규 표현의 문법에 따라 지정됩니다. 여기서, Rmax 는, 사용중의 기수 중(안)에서 최대의 숫자입니다 (예를 들어, 기수 10 의 Rmax 는 9).
useRadix(int)
메소드를 사용해 다른 기수가 설정되어 있지 않은 경우, 스캐너는 수치를 10 진수로서 해석합니다. reset()
메소드는, 스캐너의 기수가 이전으로 변경되었는지 어떠했는지에 관계없이, 그 값을 10
에 리셋 합니다.
로컬라이즈의 수
Locale.getDefault()
메소드에 의해 반환되는 값입니다. 이것은,useLocale(java.util.Locale)
메소드를 사용해 변경할 수 있습니다. reset()
메소드는, 스캐너의 로케일이 이전으로 변경되었는지 어떠했는지에 관계없이, 그 값을 초기 로케일에 리셋 합니다.
DecimalFormat
객체인 df, 및 그 DecimalFormatSymbols
객체인 dfs 로부터 취득됩니다.
LocalGroupSeparator
1000 위의 단락 문자. 즉, dfs. getGroupingSeparator()
LocalDecimalSeparator
소수점에 사용하는 문자. 즉, dfs. getDecimalSeparator()
LocalPositivePrefix
정의 수의 전에 표시하는 캐릭터 라인 (빈 상태(empty)의 경우도 있다). 즉, df. getPositivePrefix()
LocalPositiveSuffix
정의 수의 후에 표시하는 캐릭터 라인 (빈 상태(empty)의 경우도 있다). 즉, df. getPositiveSuffix()
LocalNegativePrefix
부의 수의 전에 표시하는 캐릭터 라인 (빈 상태(empty)의 경우도 있다). 즉, df. getNegativePrefix()
LocalNegativeSuffix
부의 수의 후에 표시하는 캐릭터 라인 (빈 상태(empty)의 경우도 있다). 즉, df. getNegativeSuffix()
LocalNaN
부동 소수점치가 아닌 것을 나타내는 캐릭터 라인. 즉, dfs. getNaN()
LocalInfinity
부동 소수점치의 무한대를 나타내는 캐릭터 라인. 즉, dfs. getInfinity()
Number syntax
NonASCIIDigit :: | = Character.isDigit (c) 가 true 를 돌려주는 것 같은, 비 ASCII 문자 c | ||||
Non0Digit :: | = [1-Rmax] | NonASCIIDigit | ||||
Digit :: | = [0-Rmax] | NonASCIIDigit | ||||
GroupedNumeral :: |
| ||||
Numeral :: | = ( ( Digit+ ) | GroupedNumeral ) | ||||
Integer :: | = ( [-+]? ( Numeral ) ) | ||||
| LocalPositivePrefix NumeralLocalPositiveSuffix | |||||
| LocalNegativePrefix NumeralLocalNegativeSuffix | |||||
DecimalNumeral :: | = Numeral | ||||
| NumeralLocalDecimalSeparatorDigit* | |||||
| LocalDecimalSeparatorDigit+ | |||||
Exponent :: | = ( [eE] [+-]? Digit+ ) | ||||
Decimal :: | = ( [-+]? DecimalNumeralExponent? ) | ||||
| LocalPositivePrefixDecimalNumeralLocalPositiveSuffixExponent? | |||||
| LocalNegativePrefixDecimalNumeralLocalNegativeSuffixExponent? | |||||
HexFloat :: | = [-+]? 0[xX][0-9a-fA-F]*\. [0-9a-fA-F]+ ([pP][-+]? [0-9]+)? | ||||
NonNumber :: | = NaN | LocalNan | Infinity | LocalInfinity | ||||
SignedNonNumber :: | = ( [-+]? NonNumber ) | ||||
| LocalPositivePrefixNonNumberLocalPositiveSuffix | |||||
| LocalNegativePrefixNonNumberLocalNegativeSuffix | |||||
Float :: | = Decimal | ||||
| HexFloat | |||||
| SignedNonNumber |
전술의 정규 표현에서는, 공백 문자는 무시됩니다.
생성자 의 개요 | |
---|---|
Scanner (File source)
지정된 파일로부터 스캔 된 값을 생성하는 Scanner 를 새롭게 작성합니다. |
|
Scanner (File source,
String charsetName)
지정된 파일로부터 스캔 된 값을 생성하는 Scanner 를 새롭게 작성합니다. |
|
Scanner (InputStream source)
지정된 입력 스트림로부터 스캔 된 값을 생성하는 Scanner 를 새롭게 작성합니다. |
|
Scanner (InputStream source,
String charsetName)
지정된 입력 스트림로부터 스캔 된 값을 생성하는 Scanner 를 새롭게 작성합니다. |
|
Scanner (Readable source)
지정된 소스로부터 스캔 된 값을 생성하는 Scanner 를 새롭게 작성합니다. |
|
Scanner (ReadableByteChannel source)
지정된 채널로부터 스캔 된 값을 생성하는 Scanner 를 새롭게 작성합니다. |
|
Scanner (ReadableByteChannel source,
String charsetName)
지정된 채널로부터 스캔 된 값을 생성하는 Scanner 를 새롭게 작성합니다. |
|
Scanner (String source)
지정된 캐릭터 라인으로부터 스캔 된 값을 생성하는 Scanner 를 새롭게 작성합니다. |
메소드의 개요 | |
---|---|
void |
close ()
현재의 스캐너를 클로즈 합니다. |
Pattern |
delimiter ()
이 Scanner 가 단락지어 문자의 매칭에 현재 사용하고 있는 Pattern 를 돌려줍니다. |
String |
findInLine (Pattern pattern)
단락 문자를 무시해, 다음에 나타나는 지정된 패턴의 검색을 시도합니다. |
String |
findInLine (String pattern)
단락 문자를 무시해, 다음에 나타나는, 지정된 캐릭터 라인으로부터 구축된 패턴의 검색을 시도합니다. |
String |
findWithinHorizon (Pattern pattern,
int horizon)
다음에 나타나는 지정된 패턴의 검색을 시도합니다. |
String |
findWithinHorizon (String pattern,
int horizon)
단락 문자를 무시해, 다음에 나타나는, 지정된 캐릭터 라인으로부터 구축된 패턴의 검색을 시도합니다. |
boolean |
hasNext ()
이 스캐너가 입력내에 다른 토큰을 보관 유지하는 경우는 true 를 돌려줍니다. |
boolean |
hasNext (Pattern pattern)
다음의 완전한 토큰이 지정된 패턴에 일치하는 경우는 true 를 돌려줍니다. |
boolean |
hasNext (String pattern)
다음의 토큰이, 지정된 캐릭터 라인으로부터 구축된 패턴에 일치하는 경우는 true 를 돌려줍니다. |
boolean |
hasNextBigDecimal ()
이 스캐너의 입력내의 다음의 토큰이, nextBigDecimal() 메소드를 사용해 BigDecimal 치로서 해석 가능한 경우에, true 를 돌려줍니다. |
boolean |
hasNextBigInteger ()
이 스캐너의 입력내의 다음의 토큰이, nextBigInteger() 메소드를 사용해 디폴트의 기수의 BigInteger 치로서 해석 가능한 경우에, true 를 돌려줍니다. |
boolean |
hasNextBigInteger (int radix)
토큰을 정수로서 해석하기 위해서 사용하는 기수 이 스캐너의 다음의 토큰이 유효한 BigInteger 인 경우에게만, true 이 스캐너가 클로즈 하고 있는 경우 |
boolean |
hasNextBoolean ()
캐릭터 라인 「true|false」로부터 작성된 대문자와 소문자의 구별되지 않는 패턴을 사용해, 스캐너의 입력내의 다음의 토큰을 boolean 치로서 해석 가능하면, true 를 돌려줍니다. |
boolean |
hasNextByte ()
이 스캐너의 입력내의 다음의 토큰이, nextByte() 메소드를 사용해 디폴트의 기수의 byte 치로서 해석 가능한 경우에, true 를 돌려줍니다. |
boolean |
hasNextByte (int radix)
이 스캐너의 입력내의 다음의 토큰이, nextByte() 메소드를 사용해 지정된 기수의 byte 치로서 해석 가능한 경우에, true 를 돌려줍니다. |
boolean |
hasNextDouble ()
이 스캐너의 입력내의 다음의 토큰이, nextDouble() 메소드를 사용해 double 치로서 해석 가능한 경우에, true 를 돌려줍니다. |
boolean |
hasNextFloat ()
이 스캐너의 입력내의 다음의 토큰이, nextFloat() 메소드를 사용해 float 치로서 해석 가능한 경우에, true 를 돌려줍니다. |
boolean |
hasNextInt ()
이 스캐너의 다음의 토큰이 유효한 int 치인 경우에게만, true 이 스캐너의 다음의 토큰이 유효한 int 치인 경우에게만, true 이 스캐너가 클로즈 하고 있는 경우 |
boolean |
hasNextInt (int radix)
이 스캐너의 입력내의 다음의 토큰이, nextInt() 메소드를 사용해 지정된 기수의 int 치로서 해석 가능한 경우에, true 를 돌려줍니다. |
boolean |
hasNextLine ()
이 스캐너의 입력에 다른 행이 있는 경우는 true 를 돌려줍니다. |
boolean |
hasNextLong ()
이 스캐너의 다음의 토큰이 유효한 long 치인 경우에게만, true 이 스캐너가 클로즈 하고 있는 경우 |
boolean |
hasNextLong (int radix)
이 스캐너의 입력내의 다음의 토큰이, nextLong() 메소드를 사용해 지정된 기수의 long 치로서 해석 가능한 경우에, true 를 돌려줍니다. |
boolean |
hasNextShort ()
이 스캐너의 다음의 토큰이 디폴트 기수에 근거하는 유효한 short 치인 경우에게만, true 이 스캐너가 클로즈 하고 있는 경우 |
boolean |
hasNextShort (int radix)
이 스캐너의 입력내의 다음의 토큰이, nextShort() 메소드를 사용해 지정된 기수의 short 치로서 해석 가능한 경우에, true 를 돌려줍니다. |
IOException |
ioException ()
이 Scanner 의 기본으로 되는 Readable 가 마지막에 throw 한 IOException 를 돌려줍니다. |
Locale |
locale ()
현재의 스캐너의 로케일을 돌려줍니다. |
MatchResult |
match ()
이 스캐너가 실행한 마지막 스캔 조작의 매칭 결과를 돌려줍니다. |
String |
next ()
이 스캐너로부터 다음의 완전한 토큰을 검색해 돌려줍니다. |
String |
next (Pattern pattern)
지정된 패턴에 일치하는 다음의 토큰을 돌려줍니다. |
String |
next (String pattern)
다음의 토큰이 지정된 캐릭터 라인으로부터 구축된 패턴에 일치하는 경우에게만, 그것을 돌려줍니다. |
BigDecimal |
nextBigDecimal ()
입력의 다음의 토큰을 BigDecimal 로서 스캔 합니다. |
BigInteger |
nextBigInteger ()
입력의 다음의 토큰을 BigInteger 로서 스캔 합니다. |
BigInteger |
nextBigInteger (int radix)
입력의 다음의 토큰을 BigInteger 로서 스캔 합니다. |
boolean |
nextBoolean ()
입력의 다음의 토큰을 boolean 치로서 스캔 해, 그 값을 돌려줍니다. |
byte |
nextByte ()
입력의 다음의 토큰을 byte 로서 스캔 합니다. |
byte |
nextByte (int radix)
입력의 다음의 토큰을 byte 로서 스캔 합니다. |
double |
nextDouble ()
입력의 다음의 토큰을 double 로서 스캔 합니다. |
float |
nextFloat ()
입력의 다음의 토큰을 float 로서 스캔 합니다. |
int |
nextInt ()
입력의 다음의 토큰을 int 로서 스캔 합니다. |
int |
nextInt (int radix)
입력의 다음의 토큰을 int 로서 스캔 합니다. |
String |
nextLine ()
스캐너를 현재행의 끝에 진행해, 스킵 한 입력을 돌려줍니다. |
long |
nextLong ()
입력의 다음의 토큰을 long 로서 스캔 합니다. |
long |
nextLong (int radix)
입력의 다음의 토큰을 long 로서 스캔 합니다. |
short |
nextShort ()
입력의 다음의 토큰을 short 로서 스캔 합니다. |
short |
nextShort (int radix)
입력의 다음의 토큰을 short 로서 스캔 합니다. |
int |
radix ()
현재의 스캐너의 디폴트 기수를 돌려줍니다. |
void |
remove ()
Iterator 의 구현이 remove 오퍼레이션을 지원하지 않는 경우 |
Scanner |
reset ()
현재의 스캐너를 리셋 합니다. |
Scanner |
skip (Pattern pattern)
지정된 패턴에 일치하는 입력을, 단락 문자를 무시해 스킵 합니다. |
Scanner |
skip (String pattern)
지정된 캐릭터 라인으로 구축된 패턴에 일치하는 입력을 스킵 합니다. |
String |
toString ()
이 Scanner 의 캐릭터 라인 표현을 돌려줍니다. |
Scanner |
useDelimiter (Pattern pattern)
이 스캐너의 단락 문자 패턴을, 지정된 패턴으로 설정합니다. |
Scanner |
useDelimiter (String pattern)
이 스캐너의 단락 문자 패턴을, 지정된 String 로부터 작성된 패턴으로 설정합니다. |
Scanner |
useLocale (Locale locale)
스캐너의 로케일이 지정된 로케일로 설정합니다. |
Scanner |
useRadix (int radix)
스캐너의 디폴트 기수가 지정된 기수로 설정합니다. |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
clone , equals , finalize , getClass , hashCode , notify , notifyAll , wait , wait , wait |
생성자 의 상세 |
---|
public Scanner(Readable source)
Scanner
를 새롭게 작성합니다.
source
- Readable
인터페이스를 구현하는 문자 소스public Scanner(InputStream source)
Scanner
를 새롭게 작성합니다. 스트림로부터 취득한 바이트는, 기본으로 되는 플랫폼의 디폴트 캐릭터 세트 를 사용해 문자에 변환됩니다.
source
- 스캔 대상의 입력 스트림public Scanner(InputStream source, String charsetName)
Scanner
를 새롭게 작성합니다. 스트림로부터의 바이트는, 지정된 캐릭터 세트를 사용해 문자에 변환됩니다.
source
- 스캔 대상의 입력 스트림charsetName
- 스트림로부터의 바이트를 스캔 대상의 문자로 변환하기 위해서(때문에) 사용되는 인코딩 타입
IllegalArgumentException
- 지정된 캐릭터 세트가 존재하지 않는 경우public Scanner(File source) throws FileNotFoundException
Scanner
를 새롭게 작성합니다. 파일로부터 취득한 바이트는, 기본으로 되는 플랫폼의 디폴트 캐릭터 세트 를 사용해 문자에 변환됩니다.
source
- 스캔 대상의 파일
FileNotFoundException
- 소스가 발견되지 않는 경우public Scanner(File source, String charsetName) throws FileNotFoundException
Scanner
를 새롭게 작성합니다. 파일로부터 취득한 바이트는, 지정된 캐릭터 세트를 사용해 문자에 변환됩니다.
source
- 스캔 대상의 파일charsetName
- 파일로부터 취득한 바이트를 스캔 대상의 문자로 변환할 때에 사용하는 인코딩형
FileNotFoundException
- 소스가 발견되지 않는 경우
IllegalArgumentException
- 지정된 인코딩이 발견되지 않는 경우public Scanner(String source)
Scanner
를 새롭게 작성합니다.
source
- 스캔 하는 캐릭터 라인public Scanner(ReadableByteChannel source)
Scanner
를 새롭게 작성합니다. 소스로부터 취득한 바이트는, 기본으로 되는 플랫폼의디폴트 캐릭터 세트를 사용해 문자에 변환됩니다.
source
- 스캔 하는 채널public Scanner(ReadableByteChannel source, String charsetName)
Scanner
를 새롭게 작성합니다. 소스로부터 취득한 바이트는, 지정된 캐릭터 세트를 사용해 문자에 변환됩니다.
source
- 스캔 하는 채널charsetName
- 채널로부터 취득한 바이트를 스캔 대상의 문자로 변환할 때에 사용하는 인코딩형
IllegalArgumentException
- 지정된 캐릭터 세트가 존재하지 않는 경우메소드의 상세 |
---|
public void close()
이 스캐너가 아직 닫지 않고, 기본으로 되는 readable 가 Closeable
인터페이스도 구현하는 경우, readable 의 close 메소드가 불려 갑니다. 이 스캐너가 벌써 닫혀지고 있는 경우, 이 메소드를 호출해도 아무것도 일어나지 않습니다.
스캐너가 클로즈 한 후에 검색 조작의 실행을 시도하면(자),IllegalStateException
가 throw 됩니다.
public IOException ioException()
Scanner
의 기본으로 되는 Readable
가 마지막에 throw 한 IOException
를 돌려줍니다. 이런 종류의 예외가 존재하지 않는 경우, 이 메소드는 null
를 돌려줍니다.
public Pattern delimiter()
Scanner
가 단락지어 문자의 매칭에 현재 사용하고 있는 Pattern
를 돌려줍니다.
public Scanner useDelimiter(Pattern pattern)
pattern
- 단락 문자 패턴
public Scanner useDelimiter(String pattern)
String
로부터 작성된 패턴으로 설정합니다.
이 메소드의 useDelimiter(pattern) 형식의 호출의 동작은,useDelimiter(Pattern.compile(pattern)) 의 호출과 완전히 같게 됩니다.
reset()
메소드를 호출하면(자), 스캐너의 단락 문자가디폴트로 설정됩니다.
pattern
- 단락 문자 패턴을 지정하는 캐릭터 라인
public Locale locale()
스캐너의 로케일은, 디폴트의 프리미티브(primitive) 일치 정규 표현의 다수의 요소에 영향을 미칩니다. 전술의「로컬라이즈의 수」를 참조해 주세요.
public Scanner useLocale(Locale locale)
스캐너의 로케일은, 디폴트의 프리미티브(primitive) 일치 정규 표현의 다수의 요소에 영향을 미칩니다. 전술의「로컬라이즈의 수」를 참조해 주세요.
reset()
메소드를 호출하면(자), 스캐너의 로케일이초기 로케일로 설정됩니다.
locale
- 사용하는 로케일을 지정하는 캐릭터 라인
public int radix()
스캐너의 기수는, 디폴트의 수치 일치 정규 표현의 다수의 요소에 영향을 미칩니다. 전술의「로컬라이즈의 수」를 참조해 주세요.
public Scanner useRadix(int radix)
스캐너의 기수는, 디폴트의 수치 일치 정규 표현의 다수의 요소에 영향을 미칩니다. 전술의「로컬라이즈의 수」를 참조해 주세요.
기수가 Character.MIN_RADIX
보다 작은지,Character.MAX_RADIX
보다 큰 경우,IllegalArgumentException
가 throw 됩니다.
reset()
메소드를 호출하면(자), 스캐너의 기수가 10
으로 설정됩니다.
radix
- 수치의 스캔시에 사용하는 기수
IllegalArgumentException
- 기수가 범위외에 있는 경우public MatchResult match()
IllegalStateException
를 throw 합니다.
Scanner
의 다양한 next
메소드는, 예외를 throw 하지 않고 처리가 완료하면(자), 매칭 결과를 사용 가능하게 합니다. 예를 들어, int 를 돌려주는 nextInt()
메소드를 호출한 후에, 이 메소드는, 먼저 정의한 Integer 정규 표현의 검색용의 MatchResult
를 돌려줍니다. 같이findInLine(java.lang.String)
,findWithinHorizon(java.lang.String, int)
및 skip(java.util.regex.Pattern)
메소드는, 처리에 성공하면(자) 매칭을 사용 가능하게 합니다.
IllegalStateException
- 매칭 결과가 사용 가능하지 않는 경우public String toString()
이 Scanner
의 캐릭터 라인 표현을 돌려줍니다. Scanner
의 캐릭터 라인 표현에는, 디버그에 유용한 정보가 포함됩니다. 엄밀한 서식은 지정되지 않습니다.
Object
내의 toString
public boolean hasNext()
Iterator <String >
내의 hasNext
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우Iterator
public String next()
hasNext()
의 호출로 true
가 돌려주어졌을 경우에서도, 입력의 스캔의 대기중에 블록을 실행할 가능성이 있습니다.
Iterator <String >
내의 next
NoSuchElementException
- 이용 가능한 토큰이 더 이상 존재하지 않는 경우
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우Iterator
public void remove()
Iterator
의 구현이 remove 오퍼레이션을 지원하지 않는 경우
Iterator <String >
내의 remove
UnsupportedOperationException
- 이 메소드가 불려 갔을 경우Iterator
public boolean hasNext(String pattern)
이 메소드의 hasNext(pattern) 형식의 호출의 동작은,hasNext(Pattern.compile(pattern)) 의 호출과 완전히 같게 됩니다.
pattern
- 스캔 하는 패턴을 지정하는 캐릭터 라인
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public String next(String pattern)
이 메소드의 next(pattern) 형식의 호출의 동작은,next(Pattern.compile(pattern)) 의 호출과 완전히 같게 됩니다.
pattern
- 스캔 하는 패턴을 지정하는 캐릭터 라인
NoSuchElementException
- 지정된 토큰을 이용할 수 없는 경우
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public boolean hasNext(Pattern pattern)
pattern
- 스캔 하는 패턴
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public String next(Pattern pattern)
hasNext(Pattern)
의 호출이 true
를 돌려주는 경우에서도, 이 메소드는 입력의 스캔의 대기중에 블록을 실행할 가능성이 있습니다. 매칭에 성공하면(자), 스캐너는 패턴에 일치한 입력의 끝에 진행됩니다.
pattern
- 스캔 하는 패턴
NoSuchElementException
- 이용 가능한 토큰이 더 이상 존재하지 않는 경우
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public boolean hasNextLine()
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public String nextLine()
이 메소드는 행 단락 문자의 검색을 입력내에서 속행하기 위해(때문에), 행 단락 문자가 존재하지 않는 경우, 스킵 하는 행을 검색하는 입력을 모두 버퍼 하는 일이 있습니다.
NoSuchElementException
- 행이 발견되지 않았던 경우
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public String findInLine(String pattern)
이 메소드의 findInLine(pattern) 형식의 호출의 동작은,findInLine(Pattern.compile(pattern)) 의 호출과 완전히 같게 됩니다.
pattern
- 검색하는 패턴을 지정하는 캐릭터 라인
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public String findInLine(Pattern pattern)
null
가 돌려주어져 스캐너의 위치는 변경되지 않습니다. 이 메소드는, 패턴에 일치하는 입력의 대기를 블록 하는 경우가 있습니다.
이 메소드는 지정된 패턴의 검색을 입력내에서 속행하기 위해(때문에), 행 단락 문자가 존재하지 않는 경우, 해당하는 토큰을 검색하는 입력을 모두 버퍼 하는 일이 있습니다.
pattern
- 스캔 하는 패턴
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public String findWithinHorizon(String pattern, int horizon)
이 메소드의 findWithinHorizon(pattern) 형식의 호출의 동작은,findWithinHorizon(Pattern.compile(pattern, horizon)) 의 호출과 완전히 같게 됩니다.
pattern
- 검색하는 패턴을 지정하는 캐릭터 라인
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우
IllegalArgumentException
- horizon 가 0 보다 작은 값의 경우public String findWithinHorizon(Pattern pattern, int horizon)
이 메소드는 지정된 검색 horizon 까지 단락지어 문자를 무시해 입력내에서 행 단락 문자의 검색을 속행합니다. 패턴이 발견되었을 경우, 스캐너는 일치한 입력의 끝에 진행되어, 패턴에 일치한 캐릭터 라인을 돌려줍니다. 해당하는 패턴이 검출되지 않는 경우는, null 가 돌려주어져 스캐너의 위치는 변경되지 않습니다. 이 메소드는, 패턴에 일치하는 입력의 대기를 블록 하는 경우가 있습니다.
스캐너는, 현재 위치를 넘는 horizon
코드 포인트 이상의 검색을 결코 실행하지 않습니다. 매칭은 horizon 에 의해 클립 되는 경우가 있습니다. 즉, horizon 가 보다 큰 경우, 임의의 매칭 결과가 차이가 날 가능성이 있습니다. 스캐너는, horizon 를, 투과적이어 엥커 지정이되어 있지 않은 경계로서 취급합니다 (Matcher.useTransparentBounds(boolean)
및 Matcher.useAnchoringBounds(boolean)
를 참조).
horizon 가 0
의 경우, horizon 는 무시되어 이 메소드는 입력내에서 지정된 패턴의 검색을 속행합니다. 패턴의 검색에는 제한이 없습니다. 또, 패턴의 검색중에 모든 입력을 버퍼 할 수 있습니다.
horizon 가 부의 경우는, IllegalArgumentException 가 throw 됩니다.
pattern
- 스캔 하는 패턴
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우
IllegalArgumentException
- horizon 가 0 보다 작은 값의 경우public Scanner skip(Pattern pattern)
현재의 위치에서 지정된 패턴에의 매칭이 발견되지 않는 경우, 입력은 스킵 되지 않고,NoSuchElementException 가 throw 됩니다.
이 메소드는, 지정된 패턴에의 매칭을 스캐너의 현재 위치로부터 검색하기 위해(때문에), 「*」과 같이 다수의 입력에 일치할 가능성이 있는 패턴을 지정하면(자), 스캐너가 대량의 입력을 버퍼 하는 경우가 있습니다.
sc.skip("[ \t]*")
와 같이, 아무것도 일치하지 않는 패턴을 사용하는 것으로,NoSuchElementException
가 throw 되는 위험을 무릅쓰는 일 없이 스킵 하는 것이 가능합니다.
pattern
- 스킵 하는 패턴을 지정하는 캐릭터 라인
NoSuchElementException
- 지정된 패턴이 발견되지 않는 경우
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public Scanner skip(String pattern)
이 메소드의 skip(pattern) 형식의 호출의 동작은,skip(Pattern.compile(pattern)) 의 호출과 완전히 같게 됩니다.
pattern
- 스킵 하는 패턴을 지정하는 캐릭터 라인
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public boolean hasNextBoolean()
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public boolean nextBoolean()
InputMismatchException
를 throw 합니다. 매칭에 성공하면(자), 스캐너는 일치한 입력의 끝에 진행됩니다.
InputMismatchException
- 다음의 토큰이 유효한 boolean 치가 아닌 경우
NoSuchElementException
- 스캔 하는 입력이 없어졌을 경우
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public boolean hasNextByte()
nextByte()
메소드를 사용해 디폴트의 기수의 byte 치로서 해석 가능한 경우에, true 를 돌려줍니다. 이 스캐너가 클로즈 하고 있는 경우
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public boolean hasNextByte(int radix)
nextByte()
메소드를 사용해 지정된 기수의 byte 치로서 해석 가능한 경우에, true 를 돌려줍니다. 이 스캐너가 클로즈 하고 있는 경우
radix
- 토큰을 byte 치로서 해석하기 위해서 사용하는 기수
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public byte nextByte()
nextByte() 형식의 이 호출은,nextByte(radix) 의 호출과 정확하게 같은 동작이 됩니다. 여기서,radix
는 이 스캐너의 디폴트 기수입니다.
InputMismatchException
- 다음의 토큰이 Integer 정규 표현에 일치하지 않는가 범위외인 경우
NoSuchElementException
- 스캔 하는 입력이 없어졌을 경우
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public byte nextByte(int radix)
InputMismatchException
를 throw 합니다. 변환에 성공하면(자), 스캐너는 일치한 입력의 끝에 진행됩니다.
다음의 토큰이 전술의 Integer 정규 표현에 일치하면(자), 로케일 고유의 접두사, 그룹 단락 문자, 및 로케일 고유의 접미사(suffix) 모든 것을 삭제하는것 같이 해 토큰이 byte 치에 변환됩니다. 다음에,Character.digit
를 사용해 비 ASCII 숫자가 ASCII 숫자에 매핑 되어 로케일 고유의 부의 접두사 및 접미사(suffix)이 존재하고 있었을 경우에는 부의 부호 (-)를 붙일 수 있어 결과적으로 얻을 수 있는 캐릭터 라인이 지정된 기수를 사용해 Byte.parseByte
에게 건네집니다.
radix
- 토큰을 byte 치로서 해석하기 위해서 사용하는 기수
InputMismatchException
- 다음의 토큰이 Integer 정규 표현에 일치하지 않는가 범위외인 경우
NoSuchElementException
- 스캔 하는 입력이 없어졌을 경우
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public boolean hasNextShort()
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public boolean hasNextShort(int radix)
nextShort()
메소드를 사용해 지정된 기수의 short 치로서 해석 가능한 경우에, true 를 돌려줍니다. 이 스캐너가 클로즈 하고 있는 경우
radix
- 토큰을 short 치로서 해석하기 위해서 사용하는 기수
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public short nextShort()
nextShort() 형식의 이 호출은,nextShort(radix) 의 호출과 정확하게 같은 동작이 됩니다. 여기서,radix
는 이 스캐너의 디폴트 기수입니다.
InputMismatchException
- 다음의 토큰이 Integer 정규 표현에 일치하지 않는가 범위외인 경우
NoSuchElementException
- 스캔 하는 입력이 없어졌을 경우
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public short nextShort(int radix)
InputMismatchException
를 throw 합니다. 변환에 성공하면(자), 스캐너는 일치한 입력의 끝에 진행됩니다.
다음의 토큰이 전술의 Integer 정규 표현에 일치하면(자), 로케일 고유의 접두사, 그룹 단락 문자, 및 로케일 고유의 접미사(suffix) 모든 것을 삭제하는것 같이 해 토큰이 short 치에 변환됩니다. 다음에,Character.digit
를 사용해 비 ASCII 숫자가 ASCII 숫자에 매핑 되어 로케일 고유의 부의 접두사 및 접미사(suffix)이 존재하고 있었을 경우에는 부의 부호 (-)를 붙일 수 있어 결과적으로 얻을 수 있는 캐릭터 라인이 지정된 기수를 사용해 Short.parseShort
에게 건네집니다.
radix
- 토큰을 short 치로서 해석하기 위해서 사용하는 기수
InputMismatchException
- 다음의 토큰이 Integer 정규 표현에 일치하지 않는가 범위외인 경우
NoSuchElementException
- 스캔 하는 입력이 없어졌을 경우
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public boolean hasNextInt()
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public boolean hasNextInt(int radix)
nextInt()
메소드를 사용해 지정된 기수의 int 치로서 해석 가능한 경우에, true 를 돌려줍니다. 이 스캐너가 클로즈 하고 있는 경우
radix
- 토큰을 int 치로서 해석하기 위해서 사용하는 기수
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public int nextInt()
nextInt() 형식의 이 호출은,nextInt(radix) 의 호출과 정확하게 같은 동작이 됩니다. 여기서,radix
는 이 스캐너의 디폴트 기수입니다.
InputMismatchException
- 다음의 토큰이 Integer 정규 표현에 일치하지 않는가 범위외인 경우
NoSuchElementException
- 스캔 하는 입력이 없어졌을 경우
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public int nextInt(int radix)
InputMismatchException
를 throw 합니다. 변환에 성공하면(자), 스캐너는 일치한 입력의 끝에 진행됩니다.
다음의 토큰이 전술의 Integer 정규 표현에 일치하면(자), 로케일 고유의 접두사, 그룹 단락 문자, 및 로케일 고유의 접미사(suffix) 모든 것을 삭제하는것 같이 해 토큰이 int 치에 변환됩니다. 다음에,Character.digit
를 사용해 비 ASCII 숫자가 ASCII 숫자에 매핑 되어 로케일 고유의 부의 접두사 및 접미사(suffix)이 존재하고 있었을 경우에는 부의 부호 (-)를 붙일 수 있어 결과적으로 얻을 수 있는 캐릭터 라인이 지정된 기수를 사용해 Integer.parseInt
에게 건네집니다.
radix
- 토큰을 int 치로서 해석하기 위해서 사용하는 기수
InputMismatchException
- 다음의 토큰이 Integer 정규 표현에 일치하지 않는가 범위외인 경우
NoSuchElementException
- 스캔 하는 입력이 없어졌을 경우
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public boolean hasNextLong()
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public boolean hasNextLong(int radix)
nextLong()
메소드를 사용해 지정된 기수의 long 치로서 해석 가능한 경우에, true 를 돌려줍니다. 이 스캐너가 클로즈 하고 있는 경우
radix
- 토큰을 long 치로서 해석하기 위해서 사용하는 기수
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public long nextLong()
nextLong() 형식의 이 호출은,nextLong(radix) 의 호출과 정확하게 같은 동작이 됩니다. 여기서,radix
는 이 스캐너의 디폴트 기수입니다.
InputMismatchException
- 다음의 토큰이 Integer 정규 표현에 일치하지 않는가 범위외인 경우
NoSuchElementException
- 스캔 하는 입력이 없어졌을 경우
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public long nextLong(int radix)
InputMismatchException
를 throw 합니다. 변환에 성공하면(자), 스캐너는 일치한 입력의 끝에 진행됩니다.
다음의 토큰이 전술의 Integer 정규 표현에 일치하면(자), 로케일 고유의 접두사, 그룹 단락 문자, 및 로케일 고유의 접미사(suffix) 모든 것을 삭제하는것 같이 해 토큰이 long 치에 변환됩니다. 다음에,Character.digit
를 사용해 비 ASCII 숫자가 ASCII 숫자에 매핑 되어 로케일 고유의 부의 접두사 및 접미사(suffix)이 존재하고 있었을 경우에는 부의 부호 (-)를 붙일 수 있어 결과적으로 얻을 수 있는 캐릭터 라인이 지정된 기수를 사용해 Long.parseLong
에게 건네집니다.
radix
- 토큰을 int 치로서 해석하기 위해서 사용하는 기수
InputMismatchException
- 다음의 토큰이 Integer 정규 표현에 일치하지 않는가 범위외인 경우
NoSuchElementException
- 스캔 하는 입력이 없어졌을 경우
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public boolean hasNextFloat()
nextFloat()
메소드를 사용해 float 치로서 해석 가능한 경우에, true 를 돌려줍니다. 이 스캐너가 클로즈 하고 있는 경우
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public float nextFloat()
InputMismatchException
를 throw 합니다. 변환에 성공하면(자), 스캐너는 일치한 입력의 끝에 진행됩니다.
다음의 토큰이 전술의 Float 정규 표현에 일치하면(자), 로케일 고유의 접두사, 그룹 단락 문자, 및 로케일 고유의 접미사(suffix) 모든 것을 삭제하는것 같이 해 토큰이 float 치에 변환됩니다. 다음에,Character.digit
를 사용해 비 ASCII 숫자가 ASCII 숫자에 매핑 되어 로케일 고유의 부의 접두사 및 접미사(suffix)이 존재하고 있었을 경우에는 부의 부호 (-)를 붙일 수 있어 결과적으로 얻을 수 있는 캐릭터 라인이 지정된 기수를 사용해 Float.parseFloat
에게 건네집니다. 토큰이 로컬라이즈 된 NaN 또는 무한대의 캐릭터 라인에 일치하면(자), 「NaN」또는 「Infinity」가 적당 Float.parseFloat
에게 건네집니다.
InputMismatchException
- 다음의 토큰이 Float 정규 표현에 일치하지 않는가 범위외인 경우
NoSuchElementException
- 스캔 하는 입력이 없어졌을 경우
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public boolean hasNextDouble()
nextDouble()
메소드를 사용해 double 치로서 해석 가능한 경우에, true 를 돌려줍니다. 이 스캐너가 클로즈 하고 있는 경우
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public double nextDouble()
InputMismatchException
를 throw 합니다. 변환에 성공하면(자), 스캐너는 일치한 입력의 끝에 진행됩니다.
다음의 토큰이 전술의 Float 정규 표현에 일치하면(자), 로케일 고유의 접두사, 그룹 단락 문자, 및 로케일 고유의 접미사(suffix) 모든 것을 삭제하는것 같이 해 토큰이 double 치에 변환됩니다. 다음에,Character.digit
를 사용해 비 ASCII 숫자가 ASCII 숫자에 매핑 되어 로케일 고유의 부의 접두사 및 접미사(suffix)이 존재하고 있었을 경우에는 부의 부호 (-)를 붙일 수 있어 결과적으로 얻을 수 있는 캐릭터 라인이 지정된 기수를 사용해 Double.parseDouble
에게 건네집니다. 토큰이 로컬라이즈 된 NaN 또는 무한대의 캐릭터 라인에 일치하면(자), 「NaN」또는 「Infinity」가 적당 Double.parseDouble
에게 건네집니다.
InputMismatchException
- 다음의 토큰이 Float 정규 표현에 일치하지 않는가 범위외인 경우
NoSuchElementException
- 스캔 하는 입력이 없어졌을 경우
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public boolean hasNextBigInteger()
nextBigInteger()
메소드를 사용해 디폴트의 기수의 BigInteger
치로서 해석 가능한 경우에, true 를 돌려줍니다. 이 스캐너가 클로즈 하고 있는 경우
BigInteger
인 경우에게만, true
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public boolean hasNextBigInteger(int radix)
BigInteger
인 경우에게만, true 이 스캐너가 클로즈 하고 있는 경우
radix
- 토큰을 정수로서 해석하기 위해서 사용하는 기수
BigInteger
인 경우에게만, true
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public BigInteger nextBigInteger()
BigInteger
로서 스캔 합니다.
nextBigInteger() 형식의 이 호출은,nextBigInteger(radix) 의 호출과 정확하게 같은 동작이 됩니다. 여기서,radix
는 이 스캐너의 디폴트 기수입니다.
InputMismatchException
- 다음의 토큰이 Integer 정규 표현에 일치하지 않는가 범위외인 경우
NoSuchElementException
- 스캔 하는 입력이 없어졌을 경우
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public BigInteger nextBigInteger(int radix)
BigInteger
로서 스캔 합니다.
다음의 토큰이 전술의 Integer 정규 표현에 일치하면(자), 모든 그룹 단락 문자를 삭제해,Character.digit
를 사용해 비 ASCII 숫자를 ASCII 숫자에 매핑 해, 지정된 기수를 사용해 결과적으로 얻을 수 있는 캐릭터 라인을 BigInteger(String, int)
생성자 에 건네주는것 같이, 토큰이 BigInteger 치에 변환됩니다.
radix
- 토큰의 해석에 사용하는 기수
InputMismatchException
- 다음의 토큰이 Integer 정규 표현에 일치하지 않는가 범위외인 경우
NoSuchElementException
- 스캔 하는 입력이 없어졌을 경우
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public boolean hasNextBigDecimal()
nextBigDecimal()
메소드를 사용해 BigDecimal
치로서 해석 가능한 경우에, true 를 돌려줍니다. 이 스캐너가 클로즈 하고 있는 경우
BigDecimal
인 경우에게만, true
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public BigDecimal nextBigDecimal()
BigDecimal
로서 스캔 합니다.
다음의 토큰이 전술의 Decimal 정규 표현에 일치하면(자), 모든 그룹 단락 문자를 삭제해,Character.digit
를 사용해 비 ASCII 숫자를 ASCII 숫자에 매핑 해, 결과적으로 얻을 수 있는 캐릭터 라인을 BigDecimal(String)
생성자 에 건네주는것 같이, 토큰이 BigDecimal 치에 변환됩니다.
InputMismatchException
- 다음의 토큰이 Decimal 정규 표현에 일치하지 않는가 범위외인 경우
NoSuchElementException
- 스캔 하는 입력이 없어졌을 경우
IllegalStateException
- 이 스캐너가 클로즈 하고 있는 경우public Scanner reset()
스캐너를 리셋 하면(자),useDelimiter(java.util.regex.Pattern)
,useLocale(java.util.Locale)
, 또는 useRadix(int)
의 호출에 의해 변경된 가능성이 있는, 모든 명시적인 상태 정보가 파기됩니다.
이 메소드를 scanner.reset() 의 형식에서 호출했을 경우, 다음의 호출과 같은 결과를 얻을 수 있습니다.
scanner.useDelimiter("\\p{javaWhitespace}+") . useLocale(Locale.getDefault()) . useRadix(10);
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.