一、概述
在本教程中,我们将看到如何从Scanner
类中获取字符输入。
2. 扫描一个字符
JavaScanner
不提供任何类似于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 对象。我们在这里使用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. 使用useDelimeter()
此方法也只扫描一个字符,但作为类似于findInLine()
API 的字符串对象。我们可以类似地使用charAt()
方法来获取字符值:
@Test public void givenInputSource_whenScanCharUsingUseDelimiter_thenOneCharIsRead() { Scanner sc = new Scanner(input); char c = sc.useDelimiter("").next().charAt(0); assertEquals('a', c); }
六,结论
在本教程中,我们学习了如何使用JavaScanner
获取字符输入。
0 评论