Java字符串的基础语法

字符串变量

String s;

String是一个类,String的变量是对象的管理者而非所有者。

创建String对象

String str = new String("a string");
  • 创建了一个String对象
  • 用"a String"初始化这个对象
  • 创建管理这个对象的变量str
  • 让str管理这个对象

初始化字符串变量

String str1 = "abc";
String str2 = "abc";
String str3 = "abc";
String str4 = new String("abc");
String str5 = new String("abc");
String str6 = new String("xyz");
常量池 变量管理字符串常量 创建的新的字符串对象 创建新的字符串常量 常量池
常量池
newString_abc
newstring_abc
newString_xyz
abc
xyz
str1
str2
str3
str4
str5
str6

字符串连接

system.out.println("hello"+"world");
  • 直接用 + 连接两个字符串
  • 有一个是非双引号包裹字符串的形式,则从堆中开辟一个新的区域保存常量
String s1 = "hell" + "o";
String s2 = "h" + "ello";
System.out.println(s1==s1);//true
System.out.println(s1=="hello");//true
System.out.println(s2=="hello");//true
//-----------------------
String c1 = "ab";
String c2 = c1 + "c";
System.out.println(c2=="abc");//false
  • 当 + 两边一边是字符串一边不是时,会将另一边表达为字符串然后连接
    需注意字符串在左边还是右边
    • 1 + 2 +“age” —> “3age”
    • “age” + 1 + 2 —> “age12”

字符串的输入

Scanner in = new Scanner(System.in);
in.next();//读入一个单词,结束的标志是空格、tab或换行
in.nestLine();//读入一行字符串,结束的标志是换行
in.close();//IO流的对象用完要记得关闭,以免占用资源

字符串的比较

if(input == "bye"){
    //比较是否是同一个(存储地址是否相同)
}
if(intput.equals("bye")){
    //比较内容是否相同
}

对字符串的操作

​ 字符串是对象,对它的操作都是通过"."这个运算符进行的

String大小的比较

s1.compareTo(s2);
//如果s1比s2小(大),那么结果是负(正)的,相等为0;
s1.compareToIgnorecase(s2);
//不区分大小写的比较

获得String的长度

str.length();

访问String里的字符

str.charAt(index);
//返回在index上的单个字符,和数组一样,index从0开始
//不能用for-each循环来遍历字符串

得到子串

str.substring(n);
//得到从n号位置到末尾的全部内容
str.substring(a,b);
//得到从a号位置到b号位置之间的内容

寻找字符

str.indexOf(c);
//得到字符c所在的位置,-1表示不存在
str.indexOf(c,n);
//从n号位置开始寻找c字符
str.lastIndexOf(c);
str.lastIndexOf(c,n);
//从右边开始寻找

其他String操作

s.startsWith(t);//是否以字符串起始
s.endWith(t);//是否以字符串t结尾
s.trim();//删除两端空格
s.replace(c1,c2);//将c1替换为c2
s.toLowerCase();//将字符串中字母变为小写
s.toUpperCase();//将字符串中字母变为大写

不可变的String

​ 所有的字符串都是不可变的,对它们操作的结果都是制造新的字符串出来,常改变的字符串最好不要用String

三者的比较

  • 1
    点赞
  • 1
    收藏
  • 打赏
    打赏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页
评论

打赏作者

ClarifiedfishLEE

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值