String是我们使用最多的一种字符串数据类型,它本质是一个对象,但String又和其他的对象有不同点;
重点
直接已""进行创建 和 使用 new 关键字创建他们存储的位置是不同的!并且一旦被创建是不可以被更改的,很多人的代码中都使用到了 + 符号进行拼接,但本质是又创建一个对象在把2个对象字符串进行拼接成为另外一个新的字符串;
String str1 = new String("我");//堆空间 string@001
String str2 = new String("我");//堆空间 string@002
String str3 = "我";//常量池
String str4 = "我";//常量池
str1 == str2 ? //不等,堆内存空间地址不同
str1 == str3 ? //不等,引用地址不同
str3 == str4 ? //等于,都是指向常量池
| 返回值类型 | 方法名称 | 描述 |
|---|---|---|
| int | length() | 返回字符长度 |
| int | compareTo( String ) | 比较字符字典顺序 |
| boolean | equals( String ) | 字符串内容比较 |
| boolean | equalsIgnoreCase( String ) | 字符串内容比较,不区分大小写 |
| boolean | startsWith( String ) | 字符串以什么开头 |
| boolean | endsWith( String ) | 字符串以什么结尾 |
| int | indexOf( char ) | 返回字符所在索引位置 |
| int | indexOf( char,index ) | 从哪个索引位置开始找,返回索引位置 |
| char | charAt( index ) | 返回索引位置的字符 |
| String | valueOf( baseDataClass ) | 返回字符串 |
| String | toUpperCase() | 全部修改为大写 |
| String | toLowerCase() | 全部修改小写 |
| char[] | toCharArray() | 转换为字符数组 |
String str1 = "hello my name is jack the is i introduce";
在我们处理数据的时候需要对其它的数据进行拼接,处理起来特别麻烦,我们可以通过设置占位符的方式去对字符串进行改造,例如:我要在第一个占位符的位置插入一个字符串,第二个占位符的位置插入一个变量等...
| 转 换 符 | 说 明 |
|---|---|
| %s | 字符串类型 |
| %c | 字符类型 |
| %b | 布尔类型 |
| %d | 整数类型(十进制) |
| %x | 整数类型(十六进制) |
| %o | 整数类型(八进制) |
| %f | 浮点类型 |
| %a | 十六进制浮点类型 |
| %e | 指数类型 |
| %g | 通用浮点类型(f和e类型中较短的) |
| %h | 散列码 |
| %% | 百分比类型 |
| %n | 换行符 |
| %tx | 日期与时间类型(x代表不同的日期与时间转换符 |
String introduce = "我的名字叫:%s,今年:%d岁";
String myIntroduce = String.format(introduce,"老王",48);
原文:https://www.cnblogs.com/javacat7/p/14670665.html