您的位置:首页 > 职场人生

黑马程序员——Scanner 扫描器

2015-07-19 00:01 387 查看
Scanner 扫描器

创建:

Scanner scanner = new Scanner(System.in);

方法:

nextInt() – 将输入信息的下一个标记扫描为一个 int。

如果输入非int类型的值,就会报:输入匹配异常 – java.util.InputMismatchException

next() – 查找并返回来自此扫描器的下一个完整标记。

nextLine() – 此扫描器执行当前行,并返回跳过的输入信息。

next() 和 nextLine() 区别:

next()会将空格键、Tab键或Enter键等视为分隔符或结束符,不能得到带空格的字符串。

nextLine()仅将Enter键作为结束符,返回Enter键前的所有字符,可以得到带空格的字符。

关于String类 :

1、定义

由字符组成的序列。

2、构造方法

A: String s = new String();

– 空字符序列

B: String s = new String(byte[] bys);

– 使用平台的默认字符集解码指定的 byte 数组,构造一个 String。

C: String s = new String(byte[] bys, int index, int length);

– 使用平台的默认字符集解码指定的 byte 数组,构造一个 String。从索引为 index 处开始,截取长度为 length。

如果参数 index 或者 length 超出数组范围,报出:java.lang.StringIndexOutOfBoundsException

D: String s = new String(char[] chs);

– 使用字符数组中包含的字符序列,构造一个 String。

E: String s = new String(char[] chs, int index, int length);

– 使用字符数组中包含的字符序列,构造一个 String。从索引为 index 处开始,截取长度为 length。

如果参数 index 或者 length 超出数组范围,报出:java.lang.StringIndexOutOfBoundsException

F: String s = new String(String str);

G: String s = “hello”;

3、特点

1:字符串一旦初始化就不可以改变。(注意:是指字符串在常量池中的值不可以改变,不是指引用。)

2:面试题:

a:String s = new String(“hello”)和String s = “hello”的区别。

第一种方式在内存中有两个对象。

第二种方式只有一个对象。

b:请写出结果:

String s1 = new String("hello");
String s2 = new String("hello");
System.out.println(s1==s2); // false
System.out.println(s1.equals(s2)); // true

String s3 = new String("hello");
String s4 = "hello";
System.out.println(s3==s4); // false
System.out.println(s3.equals(s4)); // true

String s5 = "hello";
String s6 = "hello";
System.out.println(s5==s6); // true
System.out.println(s5.equals(s6)); // true


4、成员方法

1判断功能

boolean equals(Object obj)

– 判断字符串的内容是否相同,区分大小写。

boolean equalsIgnoreCase(String str)

– 将此字符串与另一个字符串比较,忽略大小写。

boolean contains(String str)

– 判断字符串中是否包含指定的字符串

boolean startsWith(String str)

– 判断字符串是否是以指定的字符串开头

boolean endsWith(String str)

– 判断字符串是否是以指定的字符串结尾

boolean isEmpty()

– 判断字符串是不是空字符串。注意区分空字符串和null的区别:null是在堆内存中没有对象。

2:获取功能

int length()

– 获取字符串的长度。

char charAt(int index)

– 获取字符串中给定索引处的字符。(练习遍历字符串)

int indexOf(int ch)

– 返回指定字符在此字符串中第一次出现的索引。(不存在,返回-1)

int indexOf(String str)

– 返回指定字符串在此字符串中第一次出现的索引。(不存在,返回-1)

int indexOf(int ch,int fromIndex)

– 返回指定字符在此字符串中第一次出现的索引,从指定的索引处开始查找。

int indexOf(String str,int fromIndex)

– 返回指定字符串在此字符串中第一次出现的索引,从指定的索引处开始查找。

String substring(int start)

– 截取字符串。返回从指定索引截取后的字符串。

String substring(int start,int end)

– 截取字符串。返回从指定索引开始start到指定索引结束end截取后的字符串。(包括开始索引但不包括结束索引,左闭右开)

注:字符串的截取功能不会对原字符串产生影响

3:转换功能

byte[] getBytes()

– 把字符串转换成字节数组。

char[] toCharArray()

– 把字符串转换成字符数组。

static String copyValueOf(char[] chs)

– 把字符数组转换成字符串。

static String valueOf(char[] chs)

– 把字符数组转换成字符串。

static String valueOf(int i)

– 把int(基本类型)转换成字符串。

String toLowerCase():

– 把字符串变成小写。

String toUpperCase():

– 把字符串变成大写。

String concat(String str):

– 拼接字符串。

4: 其他功能

替换功能

String replace(char oldChar,char newChar):用新的字符去替换指定的旧字符

String replace(String oldString,String newString):用新的字符串去替换指定的旧字符串

补充:

replaceFirst(String regex, String replacement)

切割功能

String[] split(String regex):将字符串按指定的正则表达式拆分,返回切割后的字符串数组。

补充:关于切割功能。

1、如果字符串中不包含与给定正则匹配的字符(串),那么返回的数组长度为1,数组中的这1个元素值与原字符串相同。

2、如果给定的正则表达式在字符串的开始处匹配成功,那么返回数组的第一个元素为一个空字符串(“”),也就是在匹配表达式的前面截取出一个空串。

但是,如果给定的正则表达式在字符串的结尾处匹配成功,返回的数组最后一个元素并不会取空字符串,而是最后的匹配表达式前面的部分。

去除字符串两端空格

String trim()

按字典顺序比较两个字符串

int compareTo(String str)

对String类一些详细讲解:本人的认为总结比较经典的笔记

(1)字符串:多个字符组成的一串数据。

(2)构造方法:

A:String s = new String();

B:String s = new String(byte[] bys);

C:String s = new String(byte[] bys,int index,int length);

D:String s = new String(char[] chs);

E:String s = new String(char[] chs,int index,int length);

F:String s = new String(String str);

G:String s = “hello”;

(3)字符串的特点

1:字符串一旦被赋值,就不能改变。

注意:字符串的值不能改变,没有说引用变量不能改变。

2:面试题:

a:String s = new String(“hello”)和String s = “hello”的区别。

b:请写出结果:

String s1 = new String(“hello”);

String s2 = new String(“hello”);

System.out.println(s1==s2);

System.out.println(s1.equals(s2));

String s3 = new String(“hello”);

String s4 = “hello”;

System.out.println(s3==s4);

System.out.println(s3.equals(s4));

String s5=”hello”;

String s6 = “hello”;

System.out.println(s5==s6);

System.out.println(s5.equals(s6));

(4)成员方法(补齐方法意思)

1:判断功能

boolean equals(Object obj)

a6aa
boolean equalsIgnoreCase(String str)

boolean contains(String str)

boolean startsWith(String str)

boolean endsWith(String str)

boolean isEmpty()

2:获取功能

int length()

char charAt(int index)

int indexOf(int ch)

int indexOf(String str)

int indexOf(int ch,int fromIndex)

int indexOf(String str,int fromIndex)

String substring(int start)

String substring(int start,int end)

3:转换功能

byte[] getBytes()

char[] toCharArray()

static String copyValueOf(char[] chs)

static String valueOf(char[] chs)

static String valueOf(int i)

String toLowerCase()

String toUpperCase()

String concat(String str)

4:其他功能

a:替换功能

String replace(char oldChar,char newChar)

String replace(String oldString,String newString)

b:切割功能

String[] split(String regex)

c:去除两端空格功能

String trim()

d:字典顺序比较功能

int compareTo(String str)

int compareToIgnoreCase(String str)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Scanner