Java学习
上次的学习中我们学习了字符串的创建以及了解了什么是常量池,并且学习了任何对字符串进行比较,今天的学习内容我们接着上次的,本次我们将了解到,字符串的获取、截取以及字符串的转换与分割。
1.字符串的获取
一提到获取,我们脑海中肯定就是Get,但是字符串的获取方法又是怎样的呢?我们要获取的东西有很多,比如字符串的长度,字符串的位置
String当中与获取相关的常用方法有:
public int length();获取字符串当中的含有的字符个数,拿到字符串长度
public String concat(String str):将当前字符串和参数字符串拼接成为返回值的字符串。
public char charAt(int index):获取指定索引位置的单个字符。(索引从0开始)
public int indexOf(String str):查找参数字符串在本字符串当中首次出现的索引位置,如果没有返回-1值
我们来列一个简单的例子,完成对这四种常见方法的使用:
public class Demo04StringGet {
public static void main(String[] args) {
//获取字符串的长度
int length = "ahsbjalcjascuabsuasbdas".length();
System.out.println("字符串的长度是:" + length);
//拼接字符串
String str1 = "Hello";
String str2 = "World";
String str3 = str1.concat(str2);
System.out.println(str1);//Hello , 原封不动
System.out.println(str2);//World ,原封不动
System.out.println(str3);//HelloWorld , 新的字符串
System.out.println("===================");
//获取索引位置的单个字符
char ch = "Hello".charAt(1);
System.out.println("在一号索引位置的字符是:" + ch);
System.out.println("====================");
//查找参数字符串在本来字符串当中出现的第一次索引位置
//如果根本没有,返回-1值
String original = "HelloWorldHelloWorldHelloWorld";
int index = original.indexOf("llo");
System.out.println("第一次索引值的是:" + index);//2
System.out.println("HelloWorld".indexOf("abc"));//-1
}
}
2.字符串的截取
字符串的截取方法:
public String substring(int index):截取从参数位置一直到字符串末尾,返回新字符串。
public String substring(int begin int end):截取从begin开始,一直到end结束,中间的字符串。
备注:[begin,end),包含左边,不包含右边。
public class Demo01Substring {
public static void main(String[] args){
String str1 = "HelloWorld";
String str2 = str1.substring(5);
System.out.println(str1);//HelloWorld,原封不动
System.out.println(str2);//World,新字符串
System.out.println("===================");
String str3 = str1.substring(4,7);
System.out.println(str3);//oWo
System.out.println("====================");
//下面这种写法,字符串的内容任然是没有改变的、
//下面有两个字符串:“Hello”,“Java”
//strA当中保存的是地址值
//本来地址值是Hello的0x666,
//后来地址值变成了java的0x999
String strA = "Hello";
System.out.println(strA);//Hello
strA = "Java";
System.out.println(strA);//Java
}
}
3.字符串的转换
String当中与转换相关的常用方法有:
public char[] toCharArray():将当前字符串拆分成字符数组作为返回值。
public byte[] getBytes():获得当前字符串底层的字节数组。
public String replace(charSequence oldString,charSequence newString):
将所有出现的老字符串替换为新的字符串,返回替换之后的结果新字符串
备注:CharSequence意思就是说可以接受字符串类型
public class Demo02StringConvert {
public static void main(String[] args) {
char[] chars = "Hello".toCharArray();
System.out.println(chars[0]);//H
System.out.println(chars.length);//5
System.out.println("================");
//转换为字节数组
byte[] bytes = "abc".getBytes();
for (int i = 0; i < bytes.length; i++) {
System.out.println(bytes[i]);
}
System.out.println("================");
String str1 = "How are you?";
String str2 = str1.replace("o", "*");
System.out.println(str1);//How are you?
System.out.println(str2);//H*w are y*u?
System.out.println("=================");
String lang1 = "会不会玩啊,fw";
String lang2 = lang1.replace("fw", "**");
System.out.println(lang1);
System.out.println(lang2);
}
}
4.字符串的分割
分割字符串的方法
**public String[] split(String regex): **根据参数的规则,将字符串切分成若干部分
注意事项:
split方法的参数其实是一个“正则表达式”
如果按照英文句点“.”进行分割,必须写"\."(两个反斜杠)
public class Demo03StringSplit {
public static void main(String[] args){
String str1 = "aaa,bbb,ccc";
String[] array1 = str1.split(",");
for (int i = 0; i < array1.length; i++) {
System.out.println(array1[i]);
}
System.out.println("==================");
String str2 = "aaa bbb ccc";
String[] array2 = str2.split(" ");
for(int i = 0; i < array2.length; i++){
System.out.println(array2[i]);
}
System.out.println("===================");
String str3 = "XXX.YYY.ZZZ";
String[] array3 = str3.split(".");
System.out.println(array3.length);//0
System.out.println(array3);
for (int i = 0; i < array3.length; i++) {
System.out.println(array3[i]);
}
System.out.println("====================");
String str4 = "XXX.YYY.ZZZ";
String[] array4 = str4.split("\\.");
System.out.println(array4.length);//0
System.out.println(array4);
for (int i = 0; i < array4.length; i++) {
System.out.println(array4[i]);
}
}
}
字符串的简答学习就到这里了,我们将在下一篇中做几个练习题来巩固所学的知识,加油,努力,坚持的人才是最可爱!