这篇文章主要介绍了Java Scanner类用法及nextLine()产生的换行符问题,结合实例形式分析了Scanner类功能、hasNextInt()和nextInt()方法使用及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);
}
}