Scanner的构造方法原理
Scanner(InputStream source)
System类下有一个静态的字段:
public static final InputStream in; 标准的输入流,对应着键盘录入。
一般方法:
1,hasNextXxx() 判断是否还有下一个输入项,其中Xxx可以是Int,Double等。
如果需要判断是否包含下一个字符串,则可以省略Xxx
(通常用来做判断用)
2,nextXxx() 获取下一个输入项。Xxx的含义和上个方法中的Xxx相同,
默认情况下,Scanner使用空格,回车等作为分隔符
(通常用来做接收用)
Scanner获取数据出现的小问题及解决方案
两个常用的方法:
public int nextInt():获取一个int类型的值
public String nextLine():获取一个String类型的值
nextInt()是键盘录入整数的方法,当我们录入整数的时候
其实在键盘上录入的是整数和
,nextInt()方法只获取10就结束了
nextLine()是键盘录入字符串的方法,
可以接收任意类型,但是他只要遇到
就证明一行结束
注:这是它们两个一起用的一个弊端
问题解决方案
第一种:先获取一个数值后,再创建一个新的键盘录入对象获取字符串。
第二种:把所有的数据都先按照字符串获取,然后要什么,就对应转换为什么
String类的概述
通过JDK提供的API,查看String类的说明,可以看到这样的两句话:
1,字符串字面值"abc"也可以看成是一个字符串对象。
2,字符串是常量,一旦被赋值,就不能被改变。
String类的构造方法
常见构造方法:
1,public String():空构造
2,public String(byte[] bytes):把字节数组转成字符串
3,public String(byte[] bytes,int index,int length):把字节数组的一部分转成字符串
4,public String(char[] value):把字符数组转成字符串
5,public String(char[] value,int index,int count):把字符数组的一部分转成字符串
6,public String(String original):把字符串常量值转成字符串
1 public class Demo2_StringCon { 2 public static void main(String[] args) { 3 String s1 = new String(); 4 System.out.println(s1); 5 6 byte[] arr1 = {97,98,99}; 7 String s2 = new String(arr1); //解码,将计算机读的懂的转换成我们读的懂 8 System.out.println(s2); 9 10 byte[] arr2 = {97,98,99,100,101,102}; 11 String s3 = new String(arr2,2,3); //将arr2字节数组从2索引开始转换3个 12 System.out.println(s3); 13 14 char[] arr3 = {'a','b','c','d','e'}; //将字符数组转换成字符串 15 String s4 = new String(arr3); 16 System.out.println(s4); 17 18 String s5 = new String(arr3,1,3); //将arr3字符数组,从1索引开始转换3个 19 System.out.println(s5); 20 21 String s6 = new String("heima"); 22 System.out.println(s6); 23 } 24 25 }