Java基础学习(五):String类、字符串常见操作
一、String类、字符串
- 字符串是常量,创建后其值不可改变,长度也不可变。
String str = "hahaha" ;
- 如果不初始化字符串对象,变量就不会指向任何一个内存地址,此时调用会出错。
- 创建一个空字符串可以使用null赋值。
String str = null ;
- 初始化字符串
·String str = "hahaha"
·String str = new String ("hahaha")
·string str = String.valueOf(其他任意类型)
(用来将其他任意类型的基本数据类型转化成字符串) - 用字符数组初始化
·new String(char[])
·new String(char[],int,int)
(int,int是截取字符数组当中的int1到int2的字符)
·String.valueOf(char[])
·String.valueOf(char[],int,int)
public class first {
public static void main(String[] args) {
char[] ch = {'h','a','h','a'};
String s1 = new String(ch);
String s2 = new String(ch,1,2);
String s3 = String.valueOf(ch);
String s4 = String.valueOf(ch,1,2);
System.out.println(s1+"\n"+s2+"\n"+s3+"\n"+s4);
}
}
//-------------输出---------------
haha
ah
haha
ah
二、字符串的常见操作:拼接
- · “ + ”加号用来拼接多个字符串,注意两边必须是字符串或者String对象。(右操作数会被强制转化成String类型)。
· “ += ”即str += str1 => str = str + str1
。
·字符串.concat(字符串)
(返回一个新的对象,不改变原对象本身,必须执行赋值操作)。 - 字符长度:
字符串.length()
public class first {
public static void main(String[] args) {
char[] ch = {'h','a','h','a'};
String s1 = new String(ch);
System.out.println(s1.length());
}
}
三、字符串的常见操作:字符串的索引
- charAt()方法:
使用charAt(int index)
方法可以获取字符串中的指定索引位置的字符,方法入参为int数值,字符串第一个索引值为0,最后一个字符索引值为字符长度减1,返回为一个char类型。
public class first {
public static void main(String[] args) {
String s1 = "hahehrht";
System.out.println(s1.charAt(1));
}
}
//-----------输出-------------
a
- indexOf()方法:
使用indexOf()方法可以返回入参字符在指定String对象中 第一次出现 的索引位置,如果失败返回-1。
indexOf()重载有四种:
方法 | 功能描述 |
---|---|
indexOf(int ch) | 返回入参字符在指定String对象中第一次出现的索引位置,入参字符为Unicode编码 |
indexOf(int ch , int fromIndex) | 从入参索引值 fromIndex开始搜索,返回入参字符在指定String对象中第一次出现的索引位置,入参字符为Unicode编码 |
indexOf(String str) | 返回入参字符串在指定String对象中第一次出现的索引位置 |
indexOf(String str , int fromIdex) | 从入参索引值 fromIndex开始搜索,返回入参字符串在指定String对象中第一次出现的索引位置 |
四、字符串的常见操作:字符串的替换
方法 | 功能描述 |
---|---|
replace(char old , char new) | 把old替换为new,注意是字符串中的old会全部替换为new,支持正则表达式 |
replaceAll(String regex , String replacement) | 从字符串的首位开始进行搜索,直到尾部,被匹配到的字符,字符串,正则表达式都会被替代 |
replaceFirst(String regex , String replacement) | 从字符串的首位开始进行搜索,直到尾部,被匹配到的字符,字符串,正则表达式只会把第一个匹配的替换 |
五、字符串的常见操作:字符串的截取
方法 | 功能描述 |
---|---|
substring(int beginIdex) | 从入参索引位置开始截取,直到指定String对象结尾 |
substring(int beginIdex , int endindex) | 从入参索引位置开始截取,到endindex-1的位置结束(左闭右开) |
六、字符串的常见操作:字符串的分割
方法 | 功能描述 |
---|---|
split(String regex) | 将字符串按照一定的规划分割成字符串数组,可以是“,” 等分隔符,也可以是正则表达式 |
String[] str = str.split(",");
七、字符串的常见操作:判断字符串首尾内容,字符串首尾去空格,字符串大小写转换
操作 | 方法 | 功能描述 |
---|---|---|
判断字符串首尾内容: | startsWith(String prefix) | 判断字符串是否以前缀开始 |
startsWith(String prfix , int fromidex) | 从索引处判断字符串是否以前缀开始 | |
endsWith(String suffix) | 判断字符串是否以后缀开始 | |
字符串首尾去空格: | trim() | 返回一个去除字符串首尾空格的字符串 |
字符串大小写转换: | toLowerCase() | 指定对象中每个字符都转化成小写字母 |
toUpperCase() | 定对象中每个字符都转化成大写字母 |
八、字符串的常见操作:字符串比较
Java中,利用“ == ”来比较数据是否相等,而字符串双等号却是比较的引用内存地址是否相同。
方法 | 功能描述 |
---|---|
equals(String anotherString) | 比较字符串,区分大小写 |
equealsIgnoreCase(String anotherString) | 比较字符串,不区分大小写 |
九、字符串的常见操作:其他字符操作
方法 | 功能描述 |
---|---|
contains(CharSequences) | 判断String对象中是否包含入参字符串,返回布尔值 |
compareTo(String antherString) | 按照ASCLL码进行比较,如果相同则继续往后比较,如果不同返回ASCLL的差值 |
hashCode() | 返回该字符串的哈希值 |
toCharArray() | 该方法可以将字符串转化成一个新的字符数组 |
toString() | 转化成字符串 |
十、格式化输出
format(string str , Objetc...args)
转换符 | 说明 |
---|---|
%s | 字符串类型 |
%c | 字符类型 |
%b | 布尔类型 |
%d | 整数类型(十进制) |
%x | 整数类型(十六进制) |
%o | 整数类型(八进制) |
%f | 浮点类型 |
%a | 十六进制浮点类型 |
%e | 指数类型 |
%g | 通用浮点类型 |
%% | 百分比类型 |
%n | 换行符 |
%tx | 时间如日期类型 |
例如:
public class first {
public static void main(String[] args) {
String s1 = "hahehrht";
System.out.println(String.format("%s这是一个字符串",s1));
}
}
//--------------输出-------------
hahehrht这是一个字符串
format还提供时间格式化的操作:链接