目录
🐻Scanner类使用的常见异常InputMismatchException&&IllegalStateException
🐻关于Scanner类中的close方法出现的java.util.NoSuchElementException异常
🐻Scanner类中的常用输入方法
- next()
读入一个字符串并返回
next()方法会跳过输入流前面的空格以及回车符同时当next()读入时碰到空格或者制表符或者回车符时会终止该字符串的读入,但不会吸收输入流中的回车符,最后返回已有的读入序列。
例如: - nextLine()
读入一个含有空格/制表符的字符串并返回
nextLine在读入数据时,会读入包含空格/制表符在内的字符串,遇到回车符结束,同时吸收该回车符,返回录入的字符串。 - nextInt()
读入一个整数并返回
nextInt在读入一个整数时,会跳过读入位置前面的空格/制表符/回车,读入整数时遇到空格/制表符/回车则结束,遇到非整数类型则抛出java.util.InputMismatchException输入令牌不匹配的异常。
🐻Scanner类使用的常见异常InputMismatchException&&IllegalStateException
- java.util.InputMismatchException
出现原因:输入的内容与要录入的数据类型不匹配
举例:
- java.lang.IllegalStateException
出现原因:扫描仪关闭后仍使用该扫描仪读数据
举例:
🐻关于Scanner类中的close方法出现的java.util.NoSuchElementException异常
- 出现原因:System.in是一个静态流,初学的思路通常是使用完一个Scanner对象后进行该对象的close(),然后再下一次需要读入数据时,继续创建Scanner对象,但是后创建的Scanner对象和先创建的Scanner对象指向同一个状态,在上一个Scanner对象关闭时,该输入流已经被关闭了。
- 解决方法:将所有的Scanner都集中在代码的末尾关闭,或使用同一个Scanner对象,都是用结束后再关闭。
🐻字符串比较方法
关于equals方法和==运算符的区别,可以查看http://t.csdn.cn/icuL0
String类中的equals()方法,重写了Onject类中的equals方法,可以进行字符串内容的比较来判断字符串是否相等,函数原型:
String类中的equalsIgnoreCase方法()时equal方法的扩展,可以忽略字符串中字符的大小写进行字符串内容的比较。例如:
🐻字符串常用构造方法
- 以字符数组构造字符串
- 以字节数组构造字符串
- 无参构造方法
🐻字符串的大小写转换
🐻将字符串转化为数组
- 将字符串转换为字符数组
- 将字符串转换为字节数组
🐻字符串比较
当我们观察String类时,会发现它默认继承了comparable接口,并且覆写了compareTo方法也就说明了字符串之间是可以进行比较的。
字符串之间的比较规则(假设str1调用compareTo方法与str2进行比较):
- str1>str2(返回值 > 0)
①str1.length() > str2.length() 并且 str1与str2等长的部分相等。返回str1.length()-str2.length()。
②str1与str2的等长部分不相等。返回str1比str2大的字符的unicode差值。 - str1==str2(返回值 == 0)
返回0. - str1<str2(返回值 < 0)
①str1.length() < str2.length() 并且str1与str2的等长部分相等。返回str1.length()-str2.length().
②str1与str2等长部分不相等,返回str1中比str2小的字符的unicode差值.
🐻字符串替代
- replace(char oldChar,char newChar)
- replace(CharSeqence target,CharSeqence replacement)
String类默认继承了CharSeqence接口,因此可以利用多向上转型传String对象给CharSeqence类型的参数接收。 - replaceAll(String regex,String replacement)
实现的效果和replace(CharSeqence target,CharSeqence replacement)一致。 - replaceFirst(String regex,String replacement)
将字符串中第一次出现regex的字符串替换成replacement字符串并返回新对象。
🐻去除字符串前后的空格
🐻截取字符串
- subString(int beginIndex)
subString(int beginIndex,int endIndex)
🐻查找子串以及字符索引
- contains(CharSeqence s)
- indexOf(int ch)
indexOf(String str)
- lastIndexOf(int ch)
lastIndexOf(String str) - startWith(String perfix)
endWith(String prefix)
🐻字符串分割
- split(Stirng regex)
将字符串按照特定分割序列分割
🐻判断字符串是否为空
- 判断字符后是否为空是指是否为空串"",而不是null