「java中的scanf」Java中的Scanner 类位于javautil包中
今天给各位分享java中的scanf的知识,其中也会对Java中的Scanner 类位于javautil包中进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java 实现scanf
- 2、java中类似C中的scanf函数是什么,怎么用
- 3、java中和c中scanf对应的是什么
- 4、java 中 如何用scanf的格式控制符 把输入的两个数用逗号分隔。
java 实现scanf
java.util
类 Scanner
java.lang.Object
java.util.Scanner
所有已实现的接口:
IteratorString
--------------------------------------------------------------------------------
public final class Scannerextends Objectimplements IteratorString一个可以使用正则表达式来分析基本类型和字符串的简单文本扫描器。
Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。
例如,以下代码使用户能够从 System.in 中读取一个数:
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
再看一个例子,以下代码使 long 类型可以通过 myNumbers 文件中的项分配:
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 来识别。
扫描操作可能被阻塞,而等待信息的输入。
next() 和 hasNext() 方法及其基本类型 companion 方法(如 nextInt() 和 hasNextInt())首先跳过与分隔符模式匹配的输入,然后尝试返回下一个标记。在等待更多输入时 hasNext 和 next 方法都可能阻塞。hasNext 方法是否阻塞与其相关的 next 方法是否阻塞无关。
findInLine(java.lang.String)、findWithinHorizon(java.lang.String, int) 和 skip(java.util.regex.Pattern) 方法的执行与分隔符模式无关。这些方法会尝试匹配与输入中的分隔符无关的指定模式,因此可用于分隔符无关的特殊环境中。在等待更多输入时这些方法可能阻塞。
当某一扫描器抛出 InputMismatchException 时,该扫描器不会传递导致该异常的标记,因此可以通过其他某种方法来检索或跳过它。
对于某些类型的分隔模式,可能返回空标记。例如,"\\s+" 模式不会返回空标记,因为它与该分隔符的多个实例匹配。而分隔模式 "\\s" 可能返回空标记,因为它一次只传递一个空格。
扫描器可以从实现 Readable 接口的任何对象读取文本。如果对基础 readable 的 Readable.read(java.nio.CharBuffer) 方法的调用抛出 IOException,则扫描器认为已经到达了输入的结尾。基础 readable 最新抛出的 IOException 可以通过 ioException() 方法检索。
如果 Scanner 关闭,且其输入源实现 Closeable 接口,则该输入源也将关闭。
若没有外部同步,则 Scanner 的多线程使用是不安全的。
除非另行说明,否则将一个 null 参数传递到 Scanner 的任何一个方法中都将抛出 NullPointerException。
默认情况下扫描器会将数字解释为十进制形式,除非已经使用 useRadix(int) 方法设置了不同的基数。
java中类似C中的scanf函数是什么,怎么用
使用 Scanner 类,Scanner 被称为输入流扫描器类,从控制台读取数据的 构造方法 如下:
Scanner类在 java.util 包下,使用时要加
import java.util.Scanner;
Scanner input = new Scanner(System.in);
举例:
Scanner s = new Scanner(System.in);
//在控制台输入一个字符串,回车
String str = s.next();
s还有提供许多其它方法,可以参考jdk的api文档系统学习
java中和c中scanf对应的是什么
java中的scanner类相当于scanf方法,主要功能是接收用户从键盘输入的字符,如下代码:
import java.util.Scanner;
public class Scan
{
public static void main(String args[])
{
int n;
Scanner scanner=new Scanner(System.in);//实例化Scanner
n=scanner.nextInt();//n接收输入的整形数
}
}
java 中 如何用scanf的格式控制符 把输入的两个数用逗号分隔。
Java中没有类似scanf的功能,但是你可以先读入一个带有数字和英文逗号的混合字符串,然后使用split进行分割后获取:import java.io.IOException;
import java.util.Scanner;public class Test {
public static void main(String[] args) throws IOException {
// 先读入一个字符串
String s = new Scanner(System.in).next();
String[] strings = s.split(",");
System.out.println(strings[0]);
System.out.println(strings[1]);
}}
java中的scanf的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于Java中的Scanner 类位于javautil包中、java中的scanf的信息别忘了在本站进行查找喔。