scanf函数java_Java中scanner可以代替C中的Scanf[zt]
其实,Java给我们提供了格式化输⼊输出的⾯向对象⽅式。
格式化输出:
最简单的就是直接使⽤重载了的“+”来连接各种数据,这样⽐printf()个直观的⽅法。但也有缺点,太多的“+”号反⽽打乱所有的输出,⽽且输出格式不好控制。
还有⼀种⽅式是使⽤InputStream的format()⽅法,或者,如果使⽤的JDK版本在5.0以后的话,可以考虑相同的printf()⽅法。这两个⽅法和printf()是相同的。
格式化输⼊:
这个问题⽐较困难,我现在到的⽅法都是从JDK 5.0以后引⼊的。⽽且,还是没有像scanf()那样直接替代的⽅法。但我们可以使⽤java.util.Scanner。但可惜的是
是读取⼀⾏数据,然后转换为整数,⽽我们在使⽤scanf()时,可能会这样:
nextint()方法scanf("%d %d", &a, &b);
采⽤空格分割两个整数的输⼊,对⽐之下,java.util.Scanner类提供的⽅法就显得局限了。
但事实上,java.util.Scanner类提供了useDelimiter()⽅法来指明分割符。注意,“分割符”是使⽤正则表达式的形式,参看Pattern类。
如上述
scanf("%d %d", &a, &b);
替代为
sc.useDelimiter("\\s+");Int();Int();
来替代(假设sc是⼀个java.util.Scanner类对象)。注意,在Java正则表达式中,“\s”代表了[\t\n\x0B\f\r ]任⼀者(表⽰空⽩字符)。
⽽“+”表⽰不仅仅⼀个,即连续的“空⽩字符”也可以。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论