Scanner 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
정규식을 사용하여 기본 형식 및 문자열을 구문 분석할 수 있는 간단한 텍스트 스캐너입니다.
[Android.Runtime.Register("java/util/Scanner", DoNotGenerateAcw=true)]
public sealed class Scanner : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ICloseable, Java.Util.IIterator
[<Android.Runtime.Register("java/util/Scanner", DoNotGenerateAcw=true)>]
type Scanner = class
inherit Object
interface ICloseable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface IIterator
- 상속
- 특성
- 구현
설명
정규식을 사용하여 기본 형식 및 문자열을 구문 분석할 수 있는 간단한 텍스트 스캐너입니다.
는 Scanner
기본적으로 공백과 일치하는 구분 기호 패턴을 사용하여 입력을 토큰으로 나눕니다. 그러면 결과 토큰을 다양한 next
메서드를 사용하여 다양한 형식의 값으로 변환할 수 있습니다.
예를 들어 이 코드를 사용하면 사용자가 : blockquote에서 System.in
<숫자를 읽을 수 있습니다.>
{@code
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
}
</인용구>
또 다른 예로, 이 코드를 사용하면 파일myNumbers
: <blockquote의 항목에서 형식을 할당할 수 long
있습니다.>
{@code
Scanner sc = new Scanner(new File("myNumbers"));
while (sc.hasNextLong()) {
long aLong = sc.nextLong();
}
}
</인용구>
스캐너는 공백 이외의 구분 기호를 사용할 수도 있습니다. 이 예제에서는 문자열 <에서 의 여러 항목인 blockquote를 읽습니다.>
{@code
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();
}
</인용구>
다음 출력 <을 인쇄합니다. blockquote>
{@code
1
2
red
blue
}
</인용구>
정규식을 사용하여 4개의 토큰을 모두 한 번에 <구문 분석하는 이 코드를 사용하여 동일한 출력을 생성할 수 있습니다. blockquote>
{@code
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();
}
</인용구>
스캐너에서 사용하는 "default-delimiter"> 기본 공백 구분 기호는 에서 인식됩니다 Character#isWhitespace(char) Character.isWhitespace()
. 메서드는 #reset reset()
스캐너의 구분 기호 값을 이전에 변경되었는지 여부에 관계없이 기본 공백 구분 기호로 다시 설정합니다.
검사 작업은 입력 대기를 차단할 수 있습니다.
#next
및 #hasNext
메서드와 해당 도우미 메서드(예: #nextInt
및 #hasNextInt
)는 먼저 구분 기호 패턴과 일치하는 입력을 건너뛰고 다음 토큰을 반환하려고 시도합니다. 및 next()
메서드는 모두 hasNext()
추가 입력 대기를 차단할 수 있습니다. 메서드 블록에 hasNext()
연결된 next()
메서드가 차단되는지 여부에 대한 연결이 없는지 여부입니다. 메서드는 #tokens
입력 대기를 차단할 수도 있습니다.
, #findWithinHorizon findWithinHorizon()
, #skip skip()
및 #findAll findAll()
메서드는 #findInLine findInLine()
구분 기호 패턴과 독립적으로 작동합니다. 이러한 메서드는 입력의 구분 기호와 관계없이 지정된 패턴을 일치시키려고 시도하므로 구분 기호가 관련이 없는 특수한 상황에서 사용할 수 있습니다. 이러한 메서드는 더 많은 입력 대기를 차단할 수 있습니다.
스캐너가 를 InputMismatchException
throw하면 스캐너가 예외를 발생시킨 토큰을 전달하지 않으므로 다른 메서드를 통해 검색하거나 건너뛸 수 있습니다.
구분 패턴의 유형에 따라 빈 토큰이 반환될 수 있습니다. 예를 들어 패턴 "\\s+"
은 구분 기호의 여러 인스턴스와 일치하므로 빈 토큰을 반환하지 않습니다. 구분 패턴 "\\s"
은 한 번에 하나의 공간만 전달하므로 빈 토큰을 반환할 수 있습니다.
스캐너는 인터페이스를 구현하는 모든 개체에서 텍스트를 읽을 수 있습니다 java.lang.Readable
. 기본 읽기 가능 java.lang.Readable#read read()
메서드의 호출이 을 throw java.io.IOException
하는 경우 스캐너는 입력의 끝에 도달했다고 가정합니다. 기본 읽기 가능 항목에서 가장 최근에 IOException
throw된 은 메서드를 #ioException
통해 검색할 수 있습니다.
가 Scanner
닫히면 소스가 인터페이스를 구현하는 경우 입력 원본을 java.io.Closeable
닫습니다.
외부 Scanner
동기화 없이 다중 스레드 사용에 대 한 안전 하지 않습니다.
달리 언급하지 않는 한 매개 변수를 null
의 Scanner
메서드에 전달하면 이 NullPointerException
throw됩니다.
스캐너는 메서드를 사용하여 #useRadix
다른 radix를 설정하지 않는 한 숫자를 10진수로 해석합니다. 메서드는 #reset
이전에 변경되었는지 여부에 관계없이 스캐너의 radix 값을 로 10
다시 설정합니다.
<h2> "localized-numbers">Localized numbers</h2>
이 클래스의 instance 스캐너 로캘의 형식뿐만 아니라 표준 형식으로 숫자를 스캔할 수 있습니다. 스캐너의 "초기 로캘"> 초기 로캘은 메서드에서 java.util.Locale#getDefault(Locale.Category) Locale.getDefault(Locale.Category.FORMAT)
반환되는 값이며 메서드를 #useLocale useLocale()
통해 변경될 수 있습니다. 메서드는 #reset
이전에 변경되었는지 여부에 관계없이 스캐너 로캘의 값을 초기 로캘로 다시 설정합니다.
지역화된 형식은 특정 로캘에 대해 해당 로캘의 java.text.DecimalFormat DecimalFormat
개체 , 및 java.text.DecimalFormatSymbols DecimalFormatSymbols
개체 df
dfs
에서 가져온 다음 매개 변수의 관점에서 정의됩니다.
<blockquote><dl><dt>LocalGroupSeparator <dd>수천 개의 그룹을 구분하는 데 사용되는 문자( 예 : )dfs.
java.text.DecimalFormatSymbols#getGroupingSeparator getGroupingSeparator()
<dt>LocalDecimalSeparator <dd>10진수 지점에 사용되는 문자( 예 : nbsp&)dfs.
java.text.DecimalFormatSymbols#getDecimalSeparator getDecimalSeparator()
<dt>LocalPositivePrefix <dd>양수 앞에 나타나는 문자열(비어 있을 수 있음), 즉 nbsp 를&.df.
java.text.DecimalFormat#getPositivePrefix getPositivePrefix()
<dt>LocalPositiveSuffix <dd>양수 다음에 나타나는 문자열(비어 있을 수 있음), 즉 nbsp 를&.df.
java.text.DecimalFormat#getPositiveSuffix getPositiveSuffix()
<dt>LocalNegativePrefix <dd>음수 앞에 나타나는 문자열(비어 있을 수 있음), 즉 nbsp 를&.df.
java.text.DecimalFormat#getNegativePrefix getNegativePrefix()
<dt>LocalNegativeSuffix <dd>음수 다음에 나타나는 문자열(비어 있을 수 있음), 즉 nbsp 를&.df.
java.text.DecimalFormat#getNegativeSuffix getNegativeSuffix()
<dt>LocalNaN <dd>부동 소수점 값의 숫자가 아닌 값을 나타내는 문자열입니다( 예 : nbsp를&)dfs.
java.text.DecimalFormatSymbols#getNaN getNaN()
<.dt>LocalInfinity <dd>부동 소수점 값의 무한대를 나타내는 문자열입니다( 예 : nbsp&)dfs.
java.text.DecimalFormatSymbols#getInfinity getInfinity()
<./dl></blockquote>
<h3> "number-syntax">Number syntax</h3>
이 클래스의 instance 숫자로 구문 분석할 수 있는 문자열은 다음 정규식 문법으로 지정됩니다. 여기서 Rmax는 사용 중인 radix에서 가장 높은 숫자입니다(예: Rmax는 base 10에서 9임).
<dl><dt>NonAsciiDigit: <dd> 를 반환하는 java.lang.Character#isDigit Character.isDigit
(c)
비 ASCII 문자 c입니다. 사실
<dt>Non0Digit: <dd>[1-
Rmax] |
NonASCIIDigit<dt>Digit: <dd>[0-
Rmax] |
NonASCIIDigit<dt>GroupedNumeral: <dd>(
Non0DigitDigit?
Digit?
<dd> (
LocalGroupSeparatorDigitDigitDigit)+ )
<dt>Numeral: <dd>( (
Digit+ ) |
GroupedNumeral)
<dt>"Integer-regex"><i>Integer</i>:<ddNumeral) )
<dd>>|
( [-+]? (
LocalPositivePrefixNumeralLocalPositiveSuffix<dd>|
LocalNegativePrefixNumeralLocalNegativeSuffix<dt>DecimalNumeral: <dd>Numeraldd>|
Numeral<LocalDecimalSeparatorDigit*
<dd>|
LocalDecimalSeparatorDigit+
<dt>Exponent: <dd>( [eE] [+-]?
Digit+ )
<dt>"Decimal-regex"><i>Decimal</i>:<dd>( [-+]?
DecimalNumeralExponent? )
<dd>|
LocalPositivePrefixDecimalNumeralLocalPositiveSuffixExponent?
<dd>|
LocalNegativePrefixDecimalNumeralLocalNegativeSuffixExponent?
<dt>HexFloat: dd dt>NonNumber: <<dd><[-+]? 0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+ ([pP][-+]?[0-9]+)?
>NaN |
LocalNan| Infinity |
LocalInfinity<dt>SignedNonNumber: <dd>( [-+]?
NonNumber)
<dd>|
LocalPositivePrefixNonNumberLocalPositiveSuffix<dd>|
LocalNegativePrefixNonNumberLocalNegativeSuffix<dt>"Float-regex"><i Float</i>>: <dd>Decimal|
HexFloat|
SignedNonNumber</dl>
공백은 위의 정규식에서 중요하지 않습니다.
1.5에 추가되었습니다.
에 대한 Java 설명서입니다 java.util.Scanner
.
이 페이지의 일부는 만들고 공유하며 에 설명된 용어에 따라 사용되는 작업을 기반으로 수정됩니다.
생성자
Scanner(File) |
지정된 파일에서 검색된 값을 생성하는 새 |
Scanner(File, Charset) |
정규식을 사용하여 기본 형식 및 문자열을 구문 분석할 수 있는 간단한 텍스트 스캐너입니다. |
Scanner(File, String) |
지정된 파일에서 검색된 값을 생성하는 새 |
Scanner(IPath) |
지정된 파일에서 검색된 값을 생성하는 새 |
Scanner(IPath, Charset) |
정규식을 사용하여 기본 형식 및 문자열을 구문 분석할 수 있는 간단한 텍스트 스캐너입니다. |
Scanner(IPath, String) |
지정된 파일에서 검색된 값을 생성하는 새 |
Scanner(IReadable) |
지정된 원본에서 검색된 값을 생성하는 새 |
Scanner(IReadableByteChannel) |
지정된 채널에서 검색된 값을 생성하는 새 |
Scanner(IReadableByteChannel, Charset) |
정규식을 사용하여 기본 형식 및 문자열을 구문 분석할 수 있는 간단한 텍스트 스캐너입니다. |
Scanner(IReadableByteChannel, String) |
지정된 채널에서 검색된 값을 생성하는 새 |
Scanner(Stream) |
지정된 입력 스트림에서 검색된 값을 생성하는 새 |
Scanner(Stream, Charset) |
정규식을 사용하여 기본 형식 및 문자열을 구문 분석할 수 있는 간단한 텍스트 스캐너입니다. |
Scanner(Stream, String) |
지정된 입력 스트림에서 검색된 값을 생성하는 새 |
Scanner(String) |
지정된 문자열에서 검색된 값을 생성하는 새 |
속성
Class |
이 |
Handle |
기본 Android instance 대한 핸들입니다. (다음에서 상속됨 Object) |
HasNext |
이 스캐너의 입력에 다른 토큰이 있으면 true를 반환합니다. |
HasNextBigDecimal |
이 스캐너의 입력에 있는 다음 토큰을 메서드를 사용하여 로 해석할 수 있으면 true를 |
HasNextBigInteger |
메서드를 사용하여 이 스캐너 입력의 다음 토큰을 기본 radix의 로 |
HasNextBoolean |
이 스캐너 입력의 다음 토큰을 "true|false" 문자열에서 만든 대/소문자를 구분하지 않는 패턴을 사용하여 부울 값으로 해석할 수 있으면 true를 반환합니다. |
HasNextByte |
메서드를 사용하여 이 스캐너 입력의 다음 토큰을 기본 radix의 바이트 값으로 해석할 수 있으면 true를 |
HasNextDouble |
이 스캐너 입력의 다음 토큰을 메서드를 사용하여 double 값으로 해석할 수 있으면 true를 |
HasNextFloat |
메서드를 사용하여 이 스캐너 입력의 다음 토큰을 float 값으로 해석할 수 있으면 true를 |
HasNextInt |
메서드를 사용하여 이 스캐너 입력의 다음 토큰을 기본 radix의 int 값으로 해석할 수 있으면 true를 |
HasNextLine |
이 스캐너의 입력에 다른 줄이 있으면 true를 반환합니다. |
HasNextLong |
메서드를 사용하여 이 스캐너 입력의 다음 토큰을 기본 radix의 long 값으로 해석할 수 있으면 true를 |
HasNextShort |
메서드를 사용하여 이 스캐너 입력의 다음 토큰을 기본 radix의 짧은 값으로 해석할 수 있으면 true를 |
JniIdentityHashCode |
정규식을 사용하여 기본 형식 및 문자열을 구문 분석할 수 있는 간단한 텍스트 스캐너입니다. (다음에서 상속됨 Object) |
JniPeerMembers |
정규식을 사용하여 기본 형식 및 문자열을 구문 분석할 수 있는 간단한 텍스트 스캐너입니다. |
PeerReference |
정규식을 사용하여 기본 형식 및 문자열을 구문 분석할 수 있는 간단한 텍스트 스캐너입니다. (다음에서 상속됨 Object) |
ThresholdClass |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. (다음에서 상속됨 Object) |
ThresholdType |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. (다음에서 상속됨 Object) |
메서드
Clone() |
이 개체의 복사본을 만들고 반환합니다. (다음에서 상속됨 Object) |
Close() |
이 스캐너를 닫습니다. |
Delimiter() |
구분 기호와 |
Dispose() |
정규식을 사용하여 기본 형식 및 문자열을 구문 분석할 수 있는 간단한 텍스트 스캐너입니다. (다음에서 상속됨 Object) |
Dispose(Boolean) |
정규식을 사용하여 기본 형식 및 문자열을 구문 분석할 수 있는 간단한 텍스트 스캐너입니다. (다음에서 상속됨 Object) |
Equals(Object) |
다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다. (다음에서 상속됨 Object) |
FindInLine(Pattern) |
구분 기호를 무시하고 지정된 패턴의 다음 항목을 찾으려고 시도합니다. |
FindInLine(String) |
구분 기호를 무시하고 지정된 문자열에서 생성된 패턴의 다음 항목을 찾으려고 시도합니다. |
FindWithinHorizon(Pattern, Int32) |
지정된 패턴의 다음 항목을 찾으려고 시도합니다. |
FindWithinHorizon(String, Int32) |
구분 기호를 무시하고 지정된 문자열에서 생성된 패턴의 다음 항목을 찾으려고 시도합니다. |
GetHashCode() |
개체의 해시 코드 값을 반환합니다. (다음에서 상속됨 Object) |
InvokeHasNext(Pattern) |
다음 전체 토큰이 지정된 패턴과 일치하면 true를 반환합니다. |
InvokeHasNext(String) |
다음 토큰이 지정된 문자열에서 생성된 패턴과 일치하면 true를 반환합니다. |
InvokeHasNextBigInteger(Int32) |
메서드를 사용하여 이 스캐너의 입력에 있는 다음 토큰을 지정된 radix의 로 |
InvokeHasNextByte(Int32) |
메서드를 사용하여 이 스캐너 입력의 다음 토큰을 지정된 radix의 바이트 값으로 해석할 수 있으면 true를 |
InvokeHasNextInt(Int32) |
메서드를 사용하여 이 스캐너 입력의 다음 토큰을 지정된 radix의 int 값으로 해석할 수 있으면 true를 |
InvokeHasNextLong(Int32) |
메서드를 사용하여 이 스캐너 입력의 다음 토큰을 지정된 radix의 long 값으로 해석할 수 있으면 true를 |
InvokeHasNextShort(Int32) |
메서드를 사용하여 이 스캐너 입력의 다음 토큰을 지정된 radix의 짧은 값으로 해석할 수 있으면 true를 |
IoException() |
이 의 |
JavaFinalize() |
가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다. (다음에서 상속됨 Object) |
Locale() |
이 스캐너의 로캘을 반환합니다. |
Match() |
이 스캐너에서 수행한 마지막 검사 작업의 일치 결과를 반환합니다. |
Next() |
이 스캐너에서 다음 전체 토큰을 찾아 반환합니다. |
Next(Pattern) |
지정된 패턴과 일치하는 경우 다음 토큰을 반환합니다. |
Next(String) |
지정된 문자열에서 생성된 패턴과 일치하는 경우 다음 토큰을 반환합니다. |
NextBigDecimal() |
입력의 다음 토큰을 로 검색합니다 |
NextBigInteger() |
입력의 다음 토큰을 로 검색합니다 |
NextBigInteger(Int32) |
입력의 다음 토큰을 로 검색합니다 |
NextBoolean() |
입력의 다음 토큰을 부울 값으로 스캔하고 해당 값을 반환합니다. |
NextByte() |
입력의 다음 토큰을 로 검색합니다 |
NextByte(Int32) |
입력의 다음 토큰을 로 검색합니다 |
NextDouble() |
입력의 다음 토큰을 로 검색합니다 |
NextFloat() |
입력의 다음 토큰을 로 검색합니다 |
NextInt() |
입력의 다음 토큰을 로 검색합니다 |
NextInt(Int32) |
입력의 다음 토큰을 로 검색합니다 |
NextLine() |
이 스캐너가 현재 줄을 지나서 건너뛴 입력을 반환합니다. |
NextLong() |
입력의 다음 토큰을 로 검색합니다 |
NextLong(Int32) |
입력의 다음 토큰을 로 검색합니다 |
NextShort() |
입력의 다음 토큰을 로 검색합니다 |
NextShort(Int32) |
입력의 다음 토큰을 로 검색합니다 |
Notify() |
이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다. (다음에서 상속됨 Object) |
NotifyAll() |
이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다. (다음에서 상속됨 Object) |
Radix() |
이 스캐너의 기본 radix를 반환합니다. |
Remove() |
이 구현 |
Reset() |
이 스캐너를 다시 설정합니다. |
SetHandle(IntPtr, JniHandleOwnership) |
Handle 속성을 설정합니다. (다음에서 상속됨 Object) |
Skip(Pattern) |
구분 기호를 무시하고 지정된 패턴과 일치하는 입력을 건너뜁니다. |
Skip(String) |
지정된 문자열에서 생성된 패턴과 일치하는 입력을 건너뜁니다. |
ToArray<T>() |
정규식을 사용하여 기본 형식 및 문자열을 구문 분석할 수 있는 간단한 텍스트 스캐너입니다. (다음에서 상속됨 Object) |
ToString() |
개체의 문자열 표현을 반환합니다. (다음에서 상속됨 Object) |
UnregisterFromRuntime() |
정규식을 사용하여 기본 형식 및 문자열을 구문 분석할 수 있는 간단한 텍스트 스캐너입니다. (다음에서 상속됨 Object) |
UseDelimiter(Pattern) |
이 스캐너의 구분 패턴을 지정된 패턴으로 설정합니다. |
UseDelimiter(String) |
이 스캐너의 구분 패턴을 지정된 |
UseLocale(Locale) |
이 스캐너의 로캘을 지정된 로캘로 설정합니다. |
UseRadix(Int32) |
이 스캐너의 기본 반지름을 지정된 radix로 설정합니다. |
Wait() |
현재 스레드가 깨어날 때까지 대기하게 합니다( 일반적으로 <알림을 받><거나 <>중단/>em>)합니다<. (다음에서 상속됨 Object) |
Wait(Int64) |
현재 스레드가 깨어날 때까지 대기하게 합니다. 일반적으로 <>알림을 받<거나 <중단</>내보내>>거나 일정량의 실시간이 경과할 때까지 대기합니다. (다음에서 상속됨 Object) |
Wait(Int64, Int32) |
현재 스레드가 깨어날 때까지 대기하게 합니다. 일반적으로 <>알림을 받<거나 <중단</>내보내>>거나 일정량의 실시간이 경과할 때까지 대기합니다. (다음에서 상속됨 Object) |
명시적 인터페이스 구현
IIterator.Next() |
정규식을 사용하여 기본 형식 및 문자열을 구문 분석할 수 있는 간단한 텍스트 스캐너입니다. |
IJavaPeerable.Disposed() |
정규식을 사용하여 기본 형식 및 문자열을 구문 분석할 수 있는 간단한 텍스트 스캐너입니다. (다음에서 상속됨 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
정규식을 사용하여 기본 형식 및 문자열을 구문 분석할 수 있는 간단한 텍스트 스캐너입니다. (다음에서 상속됨 Object) |
IJavaPeerable.Finalized() |
정규식을 사용하여 기본 형식 및 문자열을 구문 분석할 수 있는 간단한 텍스트 스캐너입니다. (다음에서 상속됨 Object) |
IJavaPeerable.JniManagedPeerState |
정규식을 사용하여 기본 형식 및 문자열을 구문 분석할 수 있는 간단한 텍스트 스캐너입니다. (다음에서 상속됨 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
정규식을 사용하여 기본 형식 및 문자열을 구문 분석할 수 있는 간단한 텍스트 스캐너입니다. (다음에서 상속됨 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
정규식을 사용하여 기본 형식 및 문자열을 구문 분석할 수 있는 간단한 텍스트 스캐너입니다. (다음에서 상속됨 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
정규식을 사용하여 기본 형식 및 문자열을 구문 분석할 수 있는 간단한 텍스트 스캐너입니다. (다음에서 상속됨 Object) |
확장 메서드
JavaCast<TResult>(IJavaObject) |
Android 런타임 확인 형식 변환을 수행합니다. |
JavaCast<TResult>(IJavaObject) |
정규식을 사용하여 기본 형식 및 문자열을 구문 분석할 수 있는 간단한 텍스트 스캐너입니다. |
GetJniTypeName(IJavaPeerable) |
정규식을 사용하여 기본 형식 및 문자열을 구문 분석할 수 있는 간단한 텍스트 스캐너입니다. |