String理解及常用方法总结---纯干货

什么是String?

String是C++、java、VB等编程语言中的字符串,字符串是一个特殊的对象,属于引用类型。 在java、C#中,String类对象创建后,字符串一旦初始化就不能更改,因为string类中所有字符串都是常量,数据是无法更改,由于String对象的不可变,所以可以共享。对String类的任何改变,都是返回一个新的String类对象。

一、String基础使用

String A = "作者好帅!";
String B = new String("作者是一个小菜鸡!");

二、String内存堆栈浅析

1.(栈)

直接声明的对象内存地址是栈中:
第一句代码执行在常量池中创建了一个值为abc的String对象;
第二句执行因常量池中存在hello所以就不再创建新的String对象。

代码如下(示例):

String A = "abc";		//对象1
String B = "abc";		//对象2
System.out.println(System.identityHashCode(A));	//获得内存地址
System.out.println(System.identityHashCode(B));

运行结果:地址相同。在这里插入图片描述

2.(堆)

当程序执行Class被加载时就在常量池中创建了一个值为hello的String对象,第一句执行时会在堆里创建new String(“hello”)对象;
第二句执行时因常量池中存在hello所以就不再创建新的String对象了,直接在堆里创建new String(“hello”)对象。

代码如下(示例):

String a = new String("holtenObj");		//对象1
String b = new String("holtenObj");		//对象2
System.out.println(System.identityHashCode(a));		//地址追踪
System.out.println(System.identityHashCode(b));

运行结果:地址不同。
在这里插入图片描述

三、String常用方法

length(): 求字符串的长度

indexOf(): 求某个字符在字符串中的位置

charAt(): 求一个字符串中某个位置的值

equals(): 比较两个字符串是否相同

replace(): 将字符串中的某些字符用别的字符替换掉

split(): 根据给定正则表达式的匹配拆分此字符串。

substring(x,y): 输出一个新的字符串,它是此字符串中的子串

trim(): 将字符串开头的空白(空格)和尾部的空白去掉。

format(): 使用指定的语言环境、格式字符串和参数返回一个格式化字符串。

toLowerCase(): 将字符串中所有的大写改变成小写

toUpperCase(): 将字符串中所有的小写改变为大写

代码如下(示例):


//String的方法
String msg = "hello,北京欢迎你啊!";
String res = "  Hello,南京欢迎你啊!  ";
System.out.println("获取String字符串长度:"+msg.length());
System.out.println("获取String字符串某一字符所在的位置:"+msg.indexOf("北"));
System.out.println("获取String字符串某一位置的值:"+msg.charAt(7));
System.out.println("判断两个字符串是否相同:"+msg.equals(res));
System.out.println("指定字符替换:"+msg.replace(",","!"));
System.out.println("拆分字符串并打印第二段:"+msg.split(",")[1]);
System.out.println("获取字符串的子串:"+msg.substring(6,8));   //包括开始,不包括结尾
System.out.println("去掉字符串开头的空格和尾部的空格:"+res.trim());
System.out.println("将字符串中所有的大写改变成小写:"+msg.toLowerCase());
System.out.println("将字符串中所有的小写改变成大写:"+msg.toUpperCase());

运行结果:
在这里插入图片描述


结语

第一次写博客,如有不足请指教!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值