Java Scanner 类接收字符输入
大约 1 分钟
Java Scanner 类接收字符输入
1. 概述
在本教程中,我们将看到如何使用 Scanner 类接收字符输入。
2. 扫描字符
Java Scanner 没有提供类似于 nextInt(), nextLine() 等的方法来接收字符输入。
我们可以使用几种方法使用 Scanner 接收字符输入。
让我们首先创建一个输入字符串:
String input = new StringBuilder().append("abc\n")
.append("mno\n")
.append("xyz\n")
.toString();
3. 使用 next()
让我们看看如何使用 Scanner 的 next() 方法和 String 类的 charAt() 方法来接收一个字符作为输入:
@Test
public void givenInputSource_whenScanCharUsingNext_thenOneCharIsRead() {
Scanner sc = new Scanner(input);
char c = sc.next().charAt(0);
assertEquals('a', c);
}
Java Scanner 的 next() 方法返回一个字符串对象。 我们在这里使用 String 类的 charAt() 方法来从字符串对象中获取字符。
4. 使用 findInLine()
这个方法接收一个字符串模式作为输入,我们将传递 “.”(点)来匹配只有一个字符。然而,这将返回一个字符串形式的单个字符,所以我们将使用 charAt() 方法来获取字符:
@Test
public void givenInputSource_whenScanCharUsingFindInLine_thenOneCharIsRead() {
Scanner sc = new Scanner(input);
char c = sc.findInLine(".").charAt(0);
assertEquals('a', c);
}
5. 使用 useDelimiter()
这个方法也只扫描一个字符,但作为一个字符串对象,类似于 findInLine() API。我们可以类似地使用 charAt() 方法来获取字符值:
@Test
public void givenInputSource_whenScanCharUsingUseDelimiter_thenOneCharIsRead() {
Scanner sc = new Scanner(input);
char c = sc.useDelimiter("").next().charAt(0);
assertEquals('a', c);
}
6. 结论
在本教程中,我们学习了如何使用 Java Scanner 接收字符输入。
如常,示例的完整源代码可在 GitHub 上找到。