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