字符串的完整小结

字符串的存储是在堆中的常量池中;只要被是被" “所引用的字符串,内容都会放在长量池中;
常量池中不会重复存放。
**比较字符串的相等情况:**会分为==(比较的是地址)和equals(比较内容会否相同)
“abc”+10编译时就会将其确定为"abc10”
常量在编译过程中就会运算
4.理解字符串的不可变
String str = “hello” ;
str = str + " world" ;
str += “!!!” ;
System.out.println(str);

// 执行结果 hello world!!! 形如 += 这样的操作, 表面上好像是修改了字符串, 其实不是.
反射可以进行真正的访问到类的所有信息
通过类名.class.getDeclaredFiel(" ")

String str = “hello” ;
for(int x = 0; x < 1000; x++)
{ str += x ; }
System.out.println(str);
它会不断的形成新的对象只要拼接就会产生对象
5.字符,字节与字符串
字符类型
字节类型 与字符串的关系
//字符数组和字符串的之间的转化

(数组打印为字符串)
char[] value={‘a’,‘b’,‘c’};
1.String str=new String(value);
System.out.println(str);
2.System.out.println(new String(value));
(字符串打印为数组)
String str=“abcdef”
char [ ] crray=String.toCharArray();
for(int i=0;i<crray.length;i++){
System.out.print(crray[i]+" “)
}
(将字符打印为数组)
System.out.println(Arrays.toString(crray));
//offset:偏移量
//从偏移量offset位置开始的count个字符来构造字符串;
//如果count的值不能超过value的长度
String str2=new String(value,offset:1,count:2);
字节与字符串的转换
字节转字符串byte[]<=>String
byte [] brray={97,98,99,100};
1.String str=new String(brray);
System.out.println(str);
2.System.out.println(new String(brray));
---------------------------------
字符串转字节
String str=“abcdef”;
byte[]bytes=str.getBytes();
for(int i=0;i<bytes.length;i++){
System.out.println(bytes[i]+” “);
}
byte[] 是把 String 按照一个字节一个字节的方式处理, 这种适合在网络传输, 数据存储这样的场景下使用. 更适合 针对二进制数据来操作.
char[] 是吧 String 按照一个字符一个字符的方式处理, 更适合针对文本数据来操作, 尤其是包含中文的时候.
字符串的比较String<=>String
boolean equals 区分大小写的比较
boolean equalsIgnoreCase 不区分大小写的比较
int compareTo 比较字符串中的大小关系
例:“hello"和"Hello"的值 如果返回值为正数则第一个字符串大否则反之
字符串直接的查找 String内部发生的
boolean contains 判断一个子字符串是否存在
indexOf(String str) 从头开始找指定字符串的位置,找到返回字符串的索引,查不到返回-1。
indexOf(String str,int fromIndex)
------指定字符串---- 指定位置->开始查找->找到反索引->找不到-1
lastIndexOf(String str) 从尾巴往前找
lastIndexOf(String str,int fromIndex)
由后向前从指定位置开始查找
boolean stratsWith(String prefix(指定字符)) 判断是否以指定字符为字符串的头
boolean stratsWith(String prefix,int toffest(从那个位置开始))从指定位置开始找指定字符判断是否为头
boolean endWith(String suffix)判断是否已指定字符串结尾
字符串的替换
replace(String regex,String replacement)替换指定的所有内容
replaceFirst(String regex,String replacement )替换指定的第一个内容
-------------------------对象-------------替代---------------------------
字符串的拆分
split(String regex)将字符串全部拆分
例:
String str=“a b c d e f”;
String[]arr=str.sqlit(” “);
for(String c : arr ){
System.out.print( c );
}
split(String regex,int limit) 将字符串部分拆分,该数组长度就是limit极限
拆分一个IP地址
String str=“198.142.139.54.76”;
String []arr=str.sqlit(”\.”);
for(String c:arr ){
System.out.print( c +" “);
}
多次拆分
String str=“name+zz&age=99”
String[]arr=str.sqlit(”&");
for(int i=0;i<arr.length;i++){
String[]arr1=arr[i].sqlit("=");
System.out.print( arr1[0] +"->"+arr1[1]);
}
字符串的截取
substring(int beginIndex) 从指定索引截取到结尾
substring(int beginIndex,int endIndex) 截取部分内容
------------------ 【------------------ 左闭右开
其他的一些操作方法
trim()----->去掉字符中左右的空格,保留中间的空格
toUpperCase()------>字符串转为大写
toLowerCase()------>字符串转为小写
intern()--------->字符串入池操作;
concat(string str)----->字符串连接等同于"+"不入池
代码:
Scanner scanner=new Scanner(System.in)
String str=scanner.nextLine();
String str1= scanner.nextLine();
System.out.println(str.concat(str1));
int Length() 是String的方法 获取字符串的长度
length代表的是一种属性
boolean isEmpty() 判断是否为空字符串,但不是null而是长度为0;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值