java.util.Scanner

java.util.Scanner是Java5的新特征,主要功能是简化文本扫描。这个类最实用的地方表现在获取控制台输入,其他的功能都很鸡肋,尽管Java API文档中列举了大量的API方法,但是都不怎么地。
 
一、扫描控制台输入
 
这个例子是常常会用到,但是如果没有Scanner,你写写就知道多难受了。
当通过new Scanner(System.in)创建一个Scanner,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给Scanner,作为扫描对象。如果要获取输入的内容,则只需要调用Scanner的nextLine()方法即可。
 
/** 
* 扫描控制台输入 

* @author leizhimin 2009-7-24 11:24:47 
*/
 
public  class TestScanner { 
         public  static  void main(String[] args) { 
                Scanner s =  new Scanner(System.in); 
                System.out.println( "请输入字符串:"); 
                 while ( true) { 
                        String line = s.nextLine(); 
                         if (line.equals( "exit"))  break
                        System.out.println( ">>>" + line); 
                } 
        } 
}
 
请输入字符串: 
234 
>>>234 
wer 
>>>wer 
bye 
>>>bye 
exit 

Process finished with exit code 0
 
先写这里吧,有空再继续完善。
 
二、如果说Scanner使用简便,不如说Scanner的构造器支持多种方式,构建Scanner的对象很方便。
 
可以从字符串( Readable)、输入流、文件等等来直接构建Scanner对象,有了Scanner了,就可以逐段(根据正则分隔式)来扫描整个文本,并对扫描后的结果做想要的处理。
 
三、Scanner默认使用空格作为分割符来分隔文本,但允许你指定新的分隔符
 
使用默认的空格分隔符:
         public  static  void main(String[] args)  throws FileNotFoundException { 
                Scanner s =  new Scanner( "123 asdf sd 45 789 sdf asdfl,sdf.sdfl,asdf    ......asdfkl    las"); 
//                s.useDelimiter(" |,|\\."); 
                 while (s.hasNext()) { 
                        System.out.println(s.next()); 
                } 
        }
 
123 
asdf 
sd 
45 
789 
sdf 
asdfl,sdf.sdfl,asdf 
......asdfkl 
las 

Process finished with exit code 0
 
将注释行去掉,使用空格或逗号或点号作为分隔符,输出结果如下:
123 
asdf 
sd 
45 
789 
sdf 
asdfl 
sdf 
sdfl 
asdf 







asdfkl 

las 

Process finished with exit code 0
 
 
四、一大堆API函数,实用的没几个
 
(很多API,注释很让人迷惑,几乎毫无用处,这个类就这样被糟蹋了,启了很不错的名字,实际上做的全是龌龊事)
 
下面这几个相对实用:
 
delimiter() 
          返回此 Scanner 当前正在用于匹配分隔符的 Pattern。
hasNext() 
          判断扫描器中当前扫描位置后是否还存在下一段。(原APIDoc的注释很扯淡)
hasNextLine() 
          如果在此扫描器的输入中存在另一行,则返回 true。
next() 
          查找并返回来自此扫描器的下一个完整标记。
nextLine() 
          此扫描器执行当前行,并返回跳过的输入信息。
 
 
五、逐行扫描文件,并逐行输出
 
看不到价值的扫描过程
         public  static  void main(String[] args)  throws FileNotFoundException { 
                InputStream in =  new FileInputStream( new File( "C:\\AutoSubmit.java")); 
                Scanner s =  new Scanner(in); 
                 while(s.hasNextLine()){ 
                        System.out.println(s.nextLine()); 
                } 
        }
 
package own; 

import java.io.BufferedReader; 
import java.io.BufferedWriter; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.io.OutputStreamWriter; 
import java.net.HttpURLConnection; 
import java.net.ProtocolException; 
import java.net.URL; 

import com.verisign.uuid.UUID; 

/** 
* ��һ������թƭ��վ�Զ��ύ������Ϣ�ij����ÿտ�������һ�¡� 
* @author wangpeng 

*/ 
public class AutoSubmit { 

  /** 
    * @param args 
    * @throws Exception    
    */ 
  public static void main(String[] args) throws Exception { 

...在此省略N行 

Process finished with exit code 0
nextLine()和next()区别
简单的说nextLine() 返回的是一行。而next() 返回的只是第一个输入。
比如;输入hello java
nextLine() 读的是hello java
next() 读的是hello 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: java.util.ScannerJava编程语言中的一个类,用于读取用户输入和文件输入。它可以解析基本类型和字符串,并提供了一些方法来处理输入数据。Scanner类可以从标准输入、文件、字符串等多种来源读取数据。 ### 回答2: java.util.scannerJava编程语言中的一个类,用于创建一个Scanner对象,它可以从标准输入或其他输入流中获取用户输入的数据。 Scanner类提供了一系列的方法,可以用于获取不同类型的数据,例如整数、浮点数、字符串等。它还提供了一些方法,用于判断输入的数据是否符合指定的模式。 使用Scanner类,我们可以方便地获取用户输入的数据,并将其用于程序的计算、判断、显示等操作。例如,我们可以使用Scanner类获取用户输入的两个整数,并进行加法运算,然后将结果显示出来。 下面是一个使用Scanner类的示例代码: import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 创建Scanner对象,关联标准输入流 System.out.println("请输入两个整数:"); int a = scanner.nextInt(); // 获取用户输入的第一个整数 int b = scanner.nextInt(); // 获取用户输入的第二个整数 int sum = a + b; // 计算两个整数的和 System.out.println("两个整数的和为:" + sum); // 显示计算结果 } } 以上代码首先创建了一个Scanner对象,然后通过该对象获取用户输入的两个整数,并进行加法运算,最后将结果显示出来。 总而言之,java.util.scanner是一个在Java编程中非常常用的类,可以方便地获取用户输入的数据,并用于程序的计算、判断、显示等操作。 ### 回答3: java.util.ScannerJava编程语言中的一个类,位于java.util包下。它是一个可以将输入流转化为各种数据类型的工具类。 使用Scanner类,可以方便地从控制台或文件等输入源中读取数据。它提供了多个方法,用于读取不同类型的数据,如整数、浮点数、字符串等。使用Scanner类读取数据的过程非常简单,只需要创建Scanner对象,指定输入源,然后通过调用相应的方法即可得到所需的数据。 例如,要读取一个整数,可以使用nextInt()方法;要读取一个浮点数,可以使用nextDouble()方法;要读取一个字符串,可以使用next()或nextLine()方法,等等。此外,Scanner类还提供了一些其他的方法,用于判断是否还有更多的输入数据、跳过一些不需要的数据等。 需要注意的是,在使用Scanner类时,需要根据实际情况选择合适的输入源,如System.in表示从控制台读取数据,而File对象可以表示从文件中读取数据。另外,使用完Scanner类后,应该调用close()方法关闭输入流,以释放资源。 总之,java.util.ScannerJava中用于读取输入数据的工具类,可以方便地将输入流转化为各种类型的数据。它是Java程序实现控制台输入、文件读取等功能的重要工具之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值