Sting字符串的不变性

本文详细介绍了Java中String对象的操作,包括重新赋值、拼接、replace方法以及常用的字符串方法如indexOf、lastIndexOf、replace、split、substring等。强调了字符串的不可变性,并通过实例展示了如何在内存中处理字符串。此外,还涵盖了字符串到字符数组的转换、大小写转换、去除空白以及charAt、contains、endsWith等方法的使用。
摘要由CSDN通过智能技术生成

1. 当对String字符串进行重新赋值时,需要重新指定内存区域进行赋值,不能使用原有的Value进行赋值
2. 当对现有的String字符串进行拼接操作时,也需要重新指定内存区域进行赋值操作
3. 当调用String的replace()方法修改指定字符或字符串时,也需要重新指定内存区域进行赋值操作

字符串的定义方法,把lucy赋值给String一个叫name的对象。

String s=new String();
String name="lucy";

当然我们也可以这样赋值,这样就把abc赋给了value。String类定义了一个字符串数组的常量,一旦赋值不能更改常量。

String s=new String("abc");
String name="lucy";

还是这个代码,我们给他一个字符串

String s=new String("abc");
String s1="lucy";//在内存中查找是否存在lucy这个字符串, 不存在则创建一个Lucy字符串,然后把该字符串地址放入s1栈内存中
String s2="lucy";//在内存中查找是否存lucy这个字符串, 存在则把该字符串地址放入s2斩内存中
System.out.println(s1==s2);
s1="jack"//不是修改s1地址映射的字符串的内容

输出的结果是true

字符串是常量:它们的值在创建后不能更改。字符串的本质是一个char类型的数组

数组定义的写法

方法一
char[] arr1;
方法二
char arr2[];

各种常用用法

String s = "3126b23br8dm907fer";
//返回指定字符第一次出现的位置
int i = s.indexOf(4);
System.out.println(i);

//返回指定字符第一次出现的位置
int b = s.indexOf("b");
System.out.println(b);

//返回指定字符最后一次出现的位置
int r = s.lastIndexOf("r");
System.out.println(r);

//将字符串替换为另一个字符串
String p = s.replace("b", "m");
System.out.println(p);

String ss = "SSDUUDfcgYHLfhbUGVHyf";

String[] split = ss.split("afddae");
System.out.println(split);

//返回指定长度内字符串内容
String x = ss.substring(1, 6);
System.out.println(x);

//将字符串转化为新的字符数组
char[]chars=ss.toCharArray();
System.out.println(chars);

//将字符串所以字母改为小写
String m=ss.toLowerCase();
System.out.println(m);

//将字符串所以字母改为大写
String n=ss.toUpperCase();
System.out.println(n);

//返回一个字符串,值为此字符串,并删除任何前导和尾随空格
String o=ss.trim();
System.out.println(o);

String list="qwertyuiop";
//返回一个字符串的指定位置的字符
char ll=list.charAt(1);
System.out.println(ll);

//将两个字符串进行拼接
String qq=list.concat("ss");
System.out.println(qq);

//当且仅当此字符串包含指定的 char 值序列时,返回 true。
boolean aa=list.contains("q");
System.out.println(aa);

//测试此字符串是否以指定的后缀结束。
boolean cc=list.endsWith("p");
System.out.println(cc);

//把字符串按照ASCII解析成byte数字
String list2="2022-12-2";
byte[] tt=list2.getBytes();
for (byte v:tt)
System.out.println(v);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值