软件编程
位置:首页>> 软件编程>> java编程>> Java Scanner类用法及nextLine()产生的换行符问题实例分析

Java Scanner类用法及nextLine()产生的换行符问题实例分析

作者:白杨-M  发布时间:2022-12-22 21:44:04 

标签:Java,Scanner,nextLine

本文实例讲述了Java Scanner类用法及nextLine()产生的换行符问题。分享给大家供大家参考,具体如下:

分析理解:Scanner sc = new Scanner(System.in);


package cn.itcast_01;
/*
* Scanner:用于接收键盘录入数据。
*
* 前面的时候:
*     A:导包
*     B:创建对象
*     C:调用方法
*
* 分析理解:Scanner sc = new Scanner(System.in);
* System类下有一个静态的字段:
*     public static final InputStream in; 标准的输入流,对应着键盘录入。
*
*     InputStream is = System.in;
*
* class Demo {
*     public static final int x = 10;
*     public static final Student s = new Student();
* }
* int y = Demo.x;
* Student s = Demo.s;
*
*
* 构造方法:
*     Scanner(InputStream source)
*/
import java.util.Scanner;
public class ScannerDemo {
 public static void main(String[] args) {
   // 创建对象
   Scanner sc = new Scanner(System.in);
   int x = sc.nextInt();
   System.out.println("x:" + x);
 }
}

Scanner类的hasNextInt()nextInt()方法


package cn.itcast_02;
import java.util.Scanner;
/*
* 基本格式:
*     public boolean hasNextXxx():判断是否是某种类型的元素
*     public Xxx nextXxx():获取该元素
*
* 举例:用int类型的方法举例
*     public boolean hasNextInt()
*     public int nextInt()
*
* 注意:
*     InputMismatchException:输入的和你想要的不匹配
*/
public class ScannerDemo {
 public static void main(String[] args) {
   // 创建对象
   Scanner sc = new Scanner(System.in);
   // 获取数据
   if (sc.hasNextInt()) {
     int x = sc.nextInt();
     System.out.println("x:" + x);
   } else {
     System.out.println("你输入的数据有误");
   }
 }
}

Scanner类中的nextLine()产生的换行符问题


package cn.itcast_03;
import java.util.Scanner;
/*
* 常用的两个方法:
*     public int nextInt():获取一个int类型的值
*     public String nextLine():获取一个String类型的值
*
* 出现问题了:
*     先获取一个数值,在获取一个字符串,会出现问题。
*     主要原因:就是那个换行符号的问题。
* 如何解决呢?
*     A:先获取一个数值后,在创建一个新的键盘录入对象获取字符串。
*     B:把所有的数据都先按照字符串获取,然后要什么,你就对应的转换为什么。
*/
public class ScannerDemo {
 public static void main(String[] args) {
   // 创建对象
   Scanner sc = new Scanner(System.in);
   // 获取两个int类型的值
   // int a = sc.nextInt();
   // int b = sc.nextInt();
   // System.out.println("a:" + a + ",b:" + b);
   // System.out.println("-------------------");
   // 获取两个String类型的值
   // String s1 = sc.nextLine();
   // String s2 = sc.nextLine();
   // System.out.println("s1:" + s1 + ",s2:" + s2);
   // System.out.println("-------------------");
   // 先获取一个字符串,在获取一个int值
   // String s1 = sc.nextLine();
   // int b = sc.nextInt();
   // System.out.println("s1:" + s1 + ",b:" + b);
   // System.out.println("-------------------");
   // 先获取一个int值,在获取一个字符串,这里会出问题
   // int a = sc.nextInt();
   // String s2 = sc.nextLine();
   // System.out.println("a:" + a + ",s2:" + s2);
   // System.out.println("-------------------");
   int a = sc.nextInt();
   Scanner sc2 = new Scanner(System.in);
   String s = sc2.nextLine();
   System.out.println("a:" + a + ",s:" + s);
 }
}

希望本文所述对大家java程序设计有所帮助。

来源:https://www.cnblogs.com/baiyangyuanzi/p/6855190.html

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com