java的String类常用操作
最近在准备蓝桥杯,补题目,顺便也是稍微缓一下暑假自闭,主要还是不想浪费300,顺便回顾一下java的基本语法,java的String类这一块感觉还是挺多操作的,字符串的不可变性也使得其操作和c++存在一些差别。这里需要推荐一个十分好的博客就是廖雪峰的java教程,其实菜鸟教程也不错的。
Java字符串的一个重要特点就是字符串不可变。这种不可变性是通过内部的private final char[]字段,以及没有任何修改char[]的方法实现的。
创建字符串
创建字符串主要是两种常用方法吧,一个是new还有一个就是直接定义,毕竟已经是一个关键字了。
|
当然如果需要对字符串转换成char数组的话也是封装好了函数的toCharArray()
|
String的长度——length()
|
字符串比较
当我们想要比较两个字符串是否相同时,要特别注意,我们实际上是想比较字符串的内容是否相同。必须使用equals()方法而不能用==。==比较的是两个变量是否指向同一个字符串对象。可以看一下下面两个结果,有什么不同。
|
这里还有一个用于比较java的字符串方法的compareTo()方法
compareTo()方法用于两种方式的比较:
- 字符串与对象进行比较。
- 按字典顺序比较两个字符串。
他的返回值比较有趣,如果两者字符串相同的话会返回两者第一个不同字符的ASCII码的差值,如果两者的字符串长度不同的话
- 如果参数字符串等于此字符串,则返回值 0;
- 如果此字符串小于字符串参数,则返回一个小于 0 的值;
- 如果此字符串大于字符串参数,则返回一个大于 0 的值。
|
下面是一个demo
|
String遍历——charAt() 方法
charAt() 方法用于返回指定索引处的字符。索引范围为从 0 到 length() - 1。
|
如果已经变成了char[]了,不同于普通循环,你还能使用for each来循环,类似python的操作。
|
去除首尾空白字符
其实用的不太多,具体可以看廖雪峰的教程,一般就是trim()方法,截去字符串两端的空格,但对于中间的空格不处理。
查找indexOf()
这个菜鸟教程讲的挺细的可以看看。indexOf() 方法有以下四种形式:
public int indexOf(int ch): 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
public int indexOf(int ch, int fromIndex): 返回从 fromIndex 位置开始查找指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
int indexOf(String str): 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
int indexOf(String str, int fromIndex): 返回从 fromIndex 位置开始查找指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
|
lastIndexOf() 则差不多,进行反向搜索
还有startsWith(),endsWith()
字串提取
contains()可以判断给定字串是否存在于原string当中
|
substring()方法,索引从 0 开始。返回一个新字符串。
|
|
替换子串replace()
要在字符串中替换子串,有两种方法即根据字符或字符串替换replace()
|
分割字符串split()
split()方法,里面可以用正则表达式
|
valueOf()
做题的话感觉,主要用于char[],其他数字类型的转换,当让也能用之前new的方法操作。
|