java字符说明_JAVA中字符串内容总结

在java中,char类型只能表示单个字符,不能表示由多个字符连接而成的字符串。在java语言中将字符串作为对象来处理,可以通过java.lang包中的String类来创建字符串对象。

一、声明和创建字符串

1.1 声明字符串

在java中字符串必须包含在一对双引号(“ ”)之内。

例如:”23.23”、”ABCDE”等

声明字符串:String str;

String:指定该变量为字符串变量

str:任意有效的标识符,表示字符串变量的名称。

1.2 创建字符串

法一:String(char a[]) 用一个字符数组a创建String对象。

char a[] = { 'h', 'e', 'l', 'l', 'o' };

String s2 = new String(a);//通过字符数组来创建字符串

System.out.println(s2);//hello

法二:String(char a[],int offset,int length)

提取字符数组a中的一部分创建一个字符串对象。参数offset表示开始截取字符串的位置,length表示截取字符串长度。

char a[] = { 'h', 'e', 'l', 'l', 'o' };

String s3 = new String(a, 0, 2);//获取一部分字符串数组

System.out.println(s3);//he

法三:通过构造对象来创建字符串

String s4 = new String();// 通过构造对象来创建字符串

s4 = "hello";

String s5 = new String("hello");// 通过构造对象来创建字符串

System.out.println(s4);//hello

System.out.println(s5);//hello

法四:字符串常量来创建字符串变量

String s;

s = "hello";

String s1 = "word";

System.out.println(s + s1);//helloword

二、连接字符串

2.1连接多个字符串

使用“+”运算符可以实现连接多个字符串的功能。

String str1 = new String("你好");

String str2 = new String("世界");

String str3 = new String("。");

String str4 = str1 + str2 + str3;

System.out.println(str4);//你好世界。

2.2连接其他数据类型

字符串可以同其他基本数据类型进行连接。如果将字符串同这些数据类型进行连接,会将这些数据直接转换成字符串。

int read = 4;

double pratice = 5.5;

System.out.println("我每天阅读" + read + "小时," + "我每天练习" + pratice + "小时");// 我每天阅读4小时,我每天练习5.5小时

三、获取字符串信息

3.1获取字符串长度

使用String类的length()方法可以获取声明的字符串对象的长度。(包括空格)

语法:str.length();

String s="wearefamily";

String s1="we are family";

int a =s.length();//11

int b=s1.length();//13

3.2字符串查找

indexOf()方法返回的是搜索的字符或字符串首次出现的位置。

lastIndexOf()方法返回的是搜索的字符或字符串最后一次出现的位置。

若没有搜索到字符或字符串则返回-1。

语法:str.indexOf(substr)

str.lastIndexOf(substr)

String s2="we are friend";

int c =s2.indexOf("e");//1

int d = s2.indexOf("ri");//8

int e =s2.indexOf("family");//-1

int c1 =s2.lastIndexOf("e");//10

int d1 = s2.lastIndexOf("ar");//3

int e1 =s2.lastIndexOf("family");//-1

3.3获取指定索引位置的字符

使用charAt()方法可将指定索引处的字符返回。

语法:str.charAt(int index)

String s3="we are ok";

char j =s3.charAt(4);//r

四、字符串操作

4.1获取子字符串

(1)通过String类的substring()方法可对字符串进行截取。(字符串下标从0开始)

substring(int beginIndex)返回从指定索引位置开始截取直到该字符串结尾的子串。

语法:str.substring(int beginIndex)

(2)substring(int beginIndex,int endIndex) 返回从指定索引位置开始截取直到该字符串指定结尾的子串。(左闭右开)

语法:str.substring(int beginIndex,int endIndex)

String s = "hello word";

String s1=s.substring(3);//lo

String s2=s.substring(0, 3);//hel

4.2去除空格

trim()方法返回字符串的副本,忽略前后空格。

String s3=" hello ";

String s4=s3.trim();

System.out.println("未去除空格的字符串:"+s3+"去除空格的字符串"+s4);//未去除空格的字符串: hello 去除空格的字符串hello

4.3字符串替换

replace()方法可实现将指定的字符或字符串替换成新的字符或字符串。

语法:str.replace(char oldChar,char newChar)

String s1= s.replace("e", "E");//替换字符

String s2 =s.replace("we", "weee");//替换字符串

System.out.println("替换字符后:"+s1+"替换字符串后:"+s2);//替换字符后:wE arE hErE替换字符串后:weee are here

注意:1.要替换的字符oldChar在字符串中重复多次出现,replace()方法会将所有oldChar全部替换成newChar。

要替换的字符或字符串大小写应该和原字符串相等。

4.4判断字符串的开始与结束

(1)startsWith()方法判断当前字符串对象的前缀是否为参数指定的字符串。

语法:str.startsWith(String prefix)

(2)endsWith()方法判断当前字符串对象是否以给定的子字符串结束。

语法:str.endsWith(String suffix)

String num1="24367472491";

String num2="76487781471";

boolean a=num1.startsWith("2436");//true

boolean b =num1.endsWith("2332");//false

boolean c= num2.startsWith("3223");//false

boolean d =num2.endsWith("71");//true

4.5判断字符串是否相等

对字符串对象进行比较不能简单地使用比较运算符“==”,因为比较运算符比较的是两个字符串的地址是否相同。即使两个字符串的内容相同,两个对象的内存地址也是不同的,使用比较运算符仍然返回false。

String tom = new String("I am a student");

String jerry = new String("I am a student");

boolean b =(tom ==jerry);//false

比较两个字符串内容是否相等,应该使用equals()方法和equalsIgnoreCase()方法。

equals()方法不忽略大小写

equalsIgnoreCase()方法忽略大小写

String s = new String("hello");

String s1 = new String("hello");

String s2 = "Hello";

boolean b = s.equals(s1);//true

boolean c = s.equals(s2);//false

boolean d = s.equalsIgnoreCase(s2);//true

4.6按字典顺序比较两个字符串

compareTo()方法为按字典顺序比较两个字符串。该比较基于字符串中各个字符的Unicode值。

语法:str.compareTo(String otherstr)

String s =new String("a");

String s1 =new String("b");

String s2 =new String("c");

System.out.println("当对象在参数字符串后面时:"+s1.compareTo(s));//1

System.out.println("当对象为参数字符串时:"+s1.compareTo(s1));//0

System.out.println("当对象在参数字符串前面时:"+s1.compareTo(s2));//-1

4.7字母大小写转换

(1)toLowerCase()方法将字符串中的大写字母转换成小写字母。

语法:str.toLowerCase()

(2)toUpperCase()方法将字符串中的大写字母转换成小写字母。

语法:str.toUpperCase()

String s ="AdsdDDSffs";

String s1=s.toLowerCase();//adsdddsffs

String s2=s.toUpperCase();//ADSDDDSFFS

4.8字符串分割

(1)split(String sign)根据给定的分隔符对字符串进行拆分。(全部分割)

(2)split(String sign,int limit)根据给定的分隔符对字符串进行拆分,并限定拆分的次数。

String str ="192.168.0.1";

String[] firstArray = str.split("\\.");

String[] secondArray=str.split("\\.", 2);

for(String a:firstArray) {

System.out.print("["+a+"]");

}//[192][168][0][1]

for(String a:secondArray) {

System.out.print("["+a+"]");}//[192][168.0.1]

四、[字符串生成器

创建成功的字符串对象,其长度是固定的,内容不能被改变和编译。如果重复对字符串进行修改,可使用StringBuilder类。StringBuilder类可以动态地执行添加、删除和插入字符串的编辑。

5.1 append()方法

向字符串生成器中追加内容。

StringBuilder str1 = new StringBuilder("hello,");

str1.append("word");

str1.append("你好");

str1.append("世界");

System.out.println(str1);//hello,word你好世界

5.2insert(int offset,arg)方法

向字符串生成器中指定位置插入内容。

StringBuilder str2 = new StringBuilder("hello,word");

str2.insert(1,"u");

System.out.println(str2);//huello,word

5.3delete(int start,int end)方法

删除字符串生成器指定的内容(前闭后开)

StringBuilder str3 = new StringBuilder("hello,word");

str3.delete(2, 4);

System.out.println(str3);//heo,word

四、总结

连接字符串-------->“+”运算符

获取字符串长度---------->str.length()

字符串查找--------->str.indexOf(substr)和str.lastIndexOf(substr)

获取指定索引位置的字符-------->str.charAt(int index)

获取子字符串---------->str.substring(int beginIndex)和str.substring(int beginIndex,int endIndex)

去除空格------->str.trim()

字符串替换--------->str.replace(char oldChar,char newChar)

判断字符串的开始与结尾-------->str.strtsWidth(String prefix)和str.endsWidth

判断字符串是否相等-------->str.equals(String otherstr)和str.equalsIgnoreCase(String otherstr)

按字典顺序比较两个字符串------->str.compareTo(String otherstr)

字母大小写转换--------->str.toLowerCase()和str.toUpperCase()

字符串分割-------->split(String sign)和split(String sign,int limit)

StringBuilder类

1.向字符串生成器中追加内容------------->str.append()

2.向字符串生成器中指定位置插入内容---------->str.insert(int offset,arg)

3.删除字符串生成器指定的内容(前闭后开)--------->str.delete(int start,int end)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值