public final class Scanner

调用的JAVA的类库:import java.util.Scanner

提供了一种方法从 InputStream(输入流),文件,字符串本身读取int,long,String,double等类型的数据

1.从InputStream(输入流)中读取键盘输入

Scanner sc = new Scanner(System.in);
if(sc.hasNext())
String Input = sc.next();//回车后不会显示空格或者TAB键后的输入,第一行为空格可以
String Input = sc.nextLine();//回车后将所有输入的字符输出
String Input = sc.nextLine().trim();//去除字符前后空格再输出
sc.next()获取下一次键盘输入,此时还是System.in仍在接受输入,linux中Ctrl+D结束输入


高精度计算:
java.math.BigDecimal
BigDecimal Input = sc.nextBigDecimal();//标记为很大的小数
//接受小数和整数的输入
java.math.BigInteger
BigInteger Input = sc.nextBigInteger();//标记为很大的整数
BigInteger Input = sc.nextBigInteger(int radix);//键盘输入的radix进制的数
//只能输入整数
其中运算符:Input.add(BidDecimal other)     //和
      Input.subtract(BidDecimal other) //差
      Input.multiply(BidDecimal other) //积
      Input.divide(BidDecimal other)  //商
       Input.mod(BidDecimal other)    //取余
其他格式:
boolean Input = sc.nextBoolean();//只能输入布尔值(true,false)
byte Input = sc.nextByte();//输入整数范围-128~127
byte Input = sc.nextByte(int radix);//键盘输入的是radix进制的数,转成10进制后范围在byte区间内
例如:
  键盘输入102
  byte Input = sc.nextByte(8);
  System.out.println("Input的大小:" + Input);
  输出:Input的大小:66 (1*8^2 + 2*8^0)

double Input = sc.nextDouble();//double类型
float Input = sc.nextFloat();//float类型
int Input = sc.nextInt();//整数
int Input = sc.nextInt(int radix);//radix进制的整数
long和short与int类似;
int Input = sc.radix(); //不需输入即可返回默认基数10

提取字符串前的输出:
Scanner Input = sc.useDelimiter("A");//从键盘中提取字符'A'前的字符存在Input中(包含空格和TAB),没有找到就全部输出
例如:
  键盘输入:123ABC
  Scanner Input = sc.useDelimiter("A");
  System.out.println("Input字符:" + Input.next());
  输出:Input字符:123

提取字符串后的输出(局限于知道提取之前的所有字符串):
(1)Scanner skip(Sting pattern);
(2)Scanner skip(Pattern pattern);

Scanner sc = new Scanner("ABC;123");

例子(1):
  String Input = (sc.skip("AB")).nextLine(); //AB是截取str前面所有字符串
  System.out.println("Input截取后字符:" + Input);
  输入:ABC;123
  输出:Input截取后字符:C;123

例子(2):
  增加类:java.util.regex.Pattern
//知道截取前字符,且前字符数已知,可以用..代替,有几个.就有几个字符
Pattern pattern = Pattern.compile(".B");  
  String Input = (sc.skip(pattern)).nextLine();
  System.out.println("Input截取AB后字符:" + Input);
  输入:ABC;123
  输出:Input截取AB后字符:C;123


判断字符是否有下一行输入:
sc.hasNext();//boolean类型,检查是否有非空字符
sc.hasNextLine();//boolean
sc.hasNext(string pattern);//boolean类型,检测输入字符串是否为pattern,是则返回true,
否则为false
在输入字符中查找子字符串:
String Input = sc.findInLine(String pattern);
如果键盘输入含有pattern的字符串,则输出pattern字符串,否则输出null
例如:
  键盘输入:ABCD EFGH
  String Input = cs.findInLine("EF");
  System.out.println("Input字符:" + Input);
  输出:Input字符:EF
2.从文本文档里面提取对应的字符

java.io.File
java.io.FileNotFoundException

例子:
class Print_Text
{
void Get_Input()throws FileNotFoundException //对其捕获声明抛出
{
  File text = new File("/usr/my_first_code/1.txt");
  Scanner sc = new Scannner(text);
  System.out.println("text:" + sc.next());
  System.out.println("text:" + sc.nextLine());
  int LineNumber = 1;
  while(sc.hasNextLine())
  {
    String line = sc.nextLine();
    System.out.println("行数:" + LineNumber + ",Line:" + line);
    LineNumber++;
  }
  sc.close();
}
}
public class Main
{
  public static void main(String []args)
  {
    Print_Text A = new Print_Text();
    A.Get_Input();
  }
}
文本1.txt内容:123 456
        abc
输出:text:123
   text:123 456
   行数:1,Line:abc

3.从字符串中获取字符(同在文件中获取)

   4. 从控制台读取用户名和密码

  Console  cons = System.console();

  String username = cons.readLine("User name: ");

  char[] passwd = cons.readPassword("Password: ");