Scanner中的方法
next()
方法返回字符串
读取非空的字符串,从第一个非空字符(空格、回车、null都不读取)开始读取,到下一个(空格、回车、null)处停止。
Scanner in = new Scanner(System.in);
String s = in.next();
String t = in.next();
System.out.println(s);
System.out.println(t);
输入 :_123_test1_ //‘_’代表空格
输出 :
123
test1
输入 :
1234
test1
输出 :
1234
test1
nextLine()
方法
读从光标处之后的本行数据(读取所有字符,包含空格),然后将光标移到下一行
Scanner in = new Scanner(System.in);
String s1 = in.next();
String s2 = in.next();
String s3 = in.nextLine();
String s4 = in.nextLine();
String s5 = in.next();
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
System.out.println(s4);
System.out.println(s5);
输入 :
s1 s2 s3
s4
s5
输出 :
s1
s2
s3
s4
s5
解释一下:
- 前面两个
in.next()
把s1
和s2
读取走了 - 然后光标到
_s3
前 - 下一个
in.next()
把_s3
读取走并将其光标推至下一行 - 然后光标到了第二行,在
_s4
前 - 读取
in.next()
读取本行数据_s4
,然后将光标推至下一行 - 光标到第三行,
in.next()
读取本行的非空数据s5
nextInt()
返回的是一个int数值
从第一个非空的数字读取,如果遇上了字符串,则会报错
Scanner in = new Scanner(System.in);
int a1 = in.nextInt();
int a2 = in.nextInt();
int a3 = in.nextInt();
System.out.println(a1);
System.out.println(a2);
System.out.println(a3);
输入 :
123 34
1
输出 :
123
34
1
如果输入字符abcd则会报错,1234er也会报错,此方法只读数字。
在控制台输入最好不要用while(hasNextLine())
因为控制台输入的话,系统不知道你会何时结束输入,所以这个循环就会一直在,从而导致你无法跳出循环;这个方法主要用于对文件的读取,
String处理的方法
trim()
方法,用来去除首尾的空格,中间的空格去不不掉!
String s = " abc nd ";
s = s.trim();
System.out.println(s);
输出abc nd
split()
方法,用来切分字符串
-
public String[] split(String regex, int limit)
此方法限定了切割后的长度
例如,字符串
"boo:and:foo"
使用以下参数产生以下结果:
Regex Limit Result
: 2 { "boo", "and:foo" }
: 5 { "boo", "and", "foo" }
: -2 { "boo", "and", "foo" }
o 5 { "b", "", ":and:f", "", "" }
o -2 { "b", "", ":and:f", "", "" }
o 0 { "b", "", ":and:f" }
limit参数控制应用模式的次数,因此影响生成的数组的长度。 如果极限n大于0,则模式最多应用n -1次,数组的长度不大于n ,数组的最后一个条目将包含超出最后一个匹配分隔符的所有输入。 如果n是非正的,那么模式将被应用到尽可能多的次数,并且数组可以有任何长度。 如果n为0,则模式将被应用尽可能多次,数组可以有任何长度,并且尾随的空字符串将被丢弃。
public String[] split(String regex)
"boo:and:foo"
Regex Result
: { "boo", "and", "foo" }
o { "b", "", ":and:f" }
可以用replace方法去除空格
replace(char oldChar, char newChar)
替换String内字符
replaceAll(String regex, String replacement)
替换String内的某个String,我推荐用这个!
下面是具体如何去除所有空格
String s = " abc nd ";
s=s.replace(" ","");
System.out.print(s);
输出
abcnd
替换为星星*
String s = " abc nd ";
s=s.replace(" ","*");
System.out.print(s);
输出
***abc*nd**
最后强调一点,String的比较只能用equal,不能用==,==是用来比较字符串的地址是否相同的,而不是字符内的数据是否相同
网友评论