实例方法
0、toString()
输出对象本身。
输出一个引用值的时候,会自动掉用toString方法,如果没重写toString,默认会调用Object的toString方法,对象的内存地址。
下边字符串重写了toString方法。
String a = new String("1");
System.out.println(a); // 1
System.out.println(a.toString()); // 1
1、char str.charAt(int index)
返回指定索引处的值
public static void main(String[] args) {
String str = "123";
for(int i = 0; i < str.length(); i ++) {
System.out.println(str.charAt(i)); // "1" "2" "3"
}
}
2、int str.codePointAt( int index )
返回字符对应的unicode编码
3、boolean str.endsWith( String s )
判断是否以指定字符串结尾。
public static void main(String[] args) {
String str = "abc";
System.out.println(str.endsWith("c")); // true
System.out.println(str.endsWith("b")); // false
System.out.println(str.endsWith("bc")); // true
}
4、boolean str.equals( Object obj )
判断两个变量是否相等,字符串内部重写了equals方法,所以下边比较成立。
public static void main(String[] args) {
String str = "abc";
String str1 = new String("abc");
System.out.println(str.equals(str1)); // true
}
5、boolean equalsIgnoreCase(String str)
忽略大小写,比较两个字符串是否相等。
public static void main(String[] args) {
String str = "abc";
String str1 = new String("ABc");
System.out.println(str.equalsIgnoreCase(str1)); // true
}
类方法:
6、format 序列化字符串
具体请查看:https://www.cnblogs.com/leohe/p/9076194.html
String str.format(String s, Object o, ··· ···)
使用指定的语言环境,指定字符串格式化的规则。
不同的转换符如下:
转 换 符 | 说 明 | 示 例 |
%s | 字符串类型 | "mingrisoft" |
%c | 字符类型 | 'm' |
%b | 布尔类型 | true |
%d | 整数类型(十进制) | 99 |
%x | 整数类型(十六进制) | FF |
%o | 整数类型(八进制) | 77 |
%f | 浮点类型 | 99.99 |
%a | 十六进制浮点类型 | FF.35AE |
%e | 指数类型 | 9.38e+5 |
%g | 通用浮点类型(f和e类型中较短的) | |
%h | 散列码 | |
%% | 百分比类型 | % |
%n | 换行符 | |
%tx | 日期与时间类型(x代表不同的日期与时间转换符 |
例
1、
public static void main(String[] args) {
String str = "abc";
System.out.println(String.format("str的值为:%s", str));
}
2、
public static void main(String[] args) {
char str = '1';
System.out.println(String.format("字符a为:%c", str));
}
下边一般是搭配转换符标志的标志:
标 志 | 说 明 | 示 例 | 结 果 |
+ | 为正数或者负数添加符号 | ("%+d",15) | +15 |
− | 左对齐 | ("%-5d",15) | |15 | |
0 | 数字前面补0 | ("%04d", 99) | 0099 |
空格 | 在整数之前添加指定数量的空格 | ("% 4d", 99) | | 99| |
, | 以“,”对数字分组 | ("%,f", 9999.99) | 9,999.990000 |
( | 使用括号包含负数 | ("%(f", -99.99) | (99.990000) |
# | 如果是浮点数则包含小数点,如果是16进制或8进制则添加0x或0 | ("%#x", 99) ("%#o", 99) | 0x63 0143 |
< | 格式化前一个转换符所描述的参数 | ("%f和%<3.2f", 99.45) | 99.450000和99.45 |
$ | 被格式化的参数索引 | ("%1$d,%2$s", 99,"abc") | 99,abc |
例
1、实际开发中,如果想把一个数字转化为字符串,可以使用format,比如:公司的工号,在数据库中存储的格式为: "00000120",公司新来员工,工号需要+1,这种一般后台会有一个查询工号的最大值的接口,当添加员工时,获取最大值,然后自动+1, 前端把工号发给后台一定是数字格式,后台需要把数字转化为字符串,如果不够8位,前边需要补0。
public static void main(String[] args) {
int num = 101;
String res = String.format("%08d", num);
System.out.println(res); // "00000101"
}
7、byte[ ] getBytes(Charset)
使用指定字符集把String编码位字节序列
Charset类是一个标准的字符集的类,提供了常用的字符集
8、int str.hashCode()
返回字符串的哈希码
public static void main(String[] args) {
String a = "abc";
System.out.println(a.hashCode());
}
9、int str.index(String s)
返回指定字符字符串中第一次出现的索引位。
public static void main(String[] args) {
String a = "abc";
System.out.println(a.indexOf("b"));
}
10、boolean str.isEmpty()
字符串是否为空。
public static void main(String[] args) {
String a = "1";
System.out.println(a.isEmpty());
}
11、int lastIndexOf()
指定字符在字符串中最后出现的索引位
public static void main(String[] args) {
String a = "acbcdce";
System.out.println(a.lastIndexOf("c")); // 5
}
12、boolean str.matches(String regex)
判断字符串是否匹配给定的一个正则。
public static void main(String[] args) {
String a = "123";
System.out.println(a.matches("\\d{3}")); // true
System.out.println(a.matches("\\d+")); // true
}
13、String str.repalce( String targetString, String newString )
替换字符串,参数一也可以是String类型的正则表达式。
public static void main(String[] args) {
String a = "abcde1ab";
String n = a.replace("ab", "0000");
System.out.println(n); // 0000cde10000
System.out.println(a); // abcde
}
14、String[ ] str.split( String regex)
以某个规则来分割字符串(正则或某个符号)
public static void main(String[] args) {
String a = "1,20,5";
String b = "1|3|8";
String c = "a b c";
String[] arr = a.split("(-|,|\\||\\s)");
System.out.println(JSON.toJSONString(arr));
String[] arr1 = b.split("(-|,|\\||\\s)");
System.out.println(JSON.toJSONString(arr1));
String[] arr2 = c.split("(-|,|\\||\\s)");
System.out.println(JSON.toJSONString(arr2));
}
15、boolean str.startsWith( String s)
是否以指定的字符串开头。
16、String str.substring(int start)、String str.substring(int start, int end)
截取字符串,返回被截取的字符串。
public static void main(String[] args) {
String a = "abcde";
System.out.println(a.substring(3));
// 左闭右开原则
System.out.println(a.substring(1, 3));
}
17、String str.toLowerCase()
转小写字母。
18、String str.trim()
删除头尾空格。
19、String.valueOf(xxx)
把不是字符串的元素转成字符串。
String a = String.valueOf(123);
System.out.println(a instanceof String); // true
底层还是调用toString方法
传入一个引用值底层也是调用toString() 方法
20、System.out.println();
本质上它会先转成字符串在输出结果。