Java中String类详解

Java中String类详解

一、概述1、包路径代码语言:javascript代码运行次数:0运行复制java.lang.String2、简介String 类代表字符串;

Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现;

3、字符串的特点字符串是常量,内容不可改变——所看到的“改变 ”只是改变了指向;

字符串可以共享——若两个字符串内容完全相同,则是两个变量指向了同一个内容,通过new关键字创建的字符串除外;

字符串相当于char[]字符数组,但底层原理是byte[]字节数组;

二、使用方法1、创建字符串的4种方法构造方法创建:public String();//通过双引号引起内容创建

public String(char[] array);;//通过字符数组创建

public String(byte[] array);;//通过字节数组创建

直接创建:String str = "字符串内容";(重要备注:仅且仅用此方式创建,字符串存放在字符串常量池中,字符串常量池是在堆中的)

使用:代码语言:javascript代码运行次数:0运行复制 String str1 = "abc";

String str2 = new String("abc");

char[] chars = {'a','b','c'};

String str3 = new String(chars);

byte[] bytes = {97,98,99};

String str4 = new String(bytes);

System.out.println(str1);//abc

System.out.println(str2);//abc

System.out.println(str3);//abc

System.out.println(str4);//abc比较:代码语言:javascript代码运行次数:0运行复制 String str1 = "abc";

String str2 = new String("abc");

char[] chars = {'a','b','c'};

String str3 = new String(chars);

byte[] bytes = {97,98,99};

String str4 = new String(bytes);

System.out.println(str1);//abc

System.out.println(str2);//abc

System.out.println(str3);//abc

System.out.println(str4);//abc

System.out.println(str1==str2);//false

System.out.println(str1==str3);//false

System.out.println(str1==str4);//false

System.out.println(str2==str3);//false

System.out.println(str2==str4);//false

System.out.println(str3==str4);//false

//但是注意了

String str5 = "abc";

System.out.println(str1==str5);//true

//因为直接创建的内容相同的字符串在字符串常量池中共享,所以地址是相同的内存图:2、获取相关的常用方法获取字符串长度:代码语言:javascript代码运行次数:0运行复制System.out.println("abc".length());//3拼接字符串并返回拼接后的字符串:代码语言:javascript代码运行次数:0运行复制System.out.println("hello".concat(" world"));//hello world获取指定位置的单个字符:代码语言:javascript代码运行次数:0运行复制System.out.println("hello".charAt(2));//l查找子字符串首次出现的索引位置,没有则返回-1:代码语言:javascript代码运行次数:0运行复制System.out.println("hello".indexOf("he"));//03、截取相关的常用方法截取从参数位置一直到字符串就结尾的字符串:代码语言:javascript代码运行次数:0运行复制System.out.println("abcdefg".substring(2));//cdefg截取从一个位置到另一个位置的字符串:代码语言:javascript代码运行次数:0运行复制System.out.println("abcdefg".substring(2,5));//cde4、转换相关的常用方法转换为字符串数组:代码语言:javascript代码运行次数:0运行复制 String string = "abc";

char[] chars = string.toCharArray();

for (char c : chars) {

System.out.println(c);//a b c

}转换为字节数组:代码语言:javascript代码运行次数:0运行复制 byte[] bytes = string.getBytes();

for (byte b : bytes) {

System.out.println(b);//97 98 99

}用新的子字符串替换旧的子字符串:代码语言:javascript代码运行次数:0运行复制 System.out.println(string.replace("a","z"));//zbc5、字符串分割方法方法:String[] split(String regex)//这个字符串实际上是正则表达式,不是简单的字符串

作用:将字符串按照一定的规则分割成若干字符串,返回字符串数组

使用:代码语言:javascript代码运行次数:0运行复制 String string = "a,b,c";

String[] strings = string.split(",");

for (String s : strings) {

System.out.println(s);//a b c

}

相关新闻

世界杯最差球队TOP5:韩国场均丢8球 扎伊尔太惨
Bet体育365提款要多久2022

世界杯最差球队TOP5:韩国场均丢8球 扎伊尔太惨

🕒 07-31 👽 1729
三人篮球世界杯:中国女队以小组第三晋级淘汰赛
365bet手机投注网

三人篮球世界杯:中国女队以小组第三晋级淘汰赛

🕒 08-09 👽 9824
阿里巴巴赊账商家几时到账(1688诚信赊多久自动确认收货?)
Bet体育365提款要多久2022

阿里巴巴赊账商家几时到账(1688诚信赊多久自动确认收货?)

🕒 07-09 👽 2604
风口“浪”尖上的B站,原来有如此多读书类的UP主
365bet手机投注网

风口“浪”尖上的B站,原来有如此多读书类的UP主

🕒 08-18 👽 5855
重建爱情:挽回表白失败后的关系策略与情感修复指南
sr是什么牌子
Bet体育365提款要多久2022

sr是什么牌子

🕒 07-23 👽 8370