文章目录
前言
String 是我们学习JAVA基础过程中,最先接触的引用类型数据类型。本文基于个人学习过程中的笔记,记录String的常用方法与常用处。
众所周知,保存字符的数据类型除了String,还有比较少用的char;char作为基本类型之一,也有对应的包装类Character,本文也记录了Character常用的方法。
1. Character常用方法
1.1 判断字符类型
在例子中直接体现常用方法:
char ch1 = 'a';
// 判断是否为字母
System.out.println(Character.isLetter(ch1));
// 判断是否为数字
System.out.println(Character.isDigit(ch1));
// 判断是否为空格
System.out.println(Character.isWhitespace(ch1));
1.2 大小写转换
判断是否为大小写:
// 判断是否为大写、小写
System.out.println(Character.isUpperCase(ch1));
System.out.println(Character.isLowerCase(ch1));
转换大小写:
// 转换为大写、小写
System.out.println(Character.toUpperCase(ch1));
System.out.println(Character.toLowerCase(ch1));
2. String常用方法
2.1 String创建方法
既然String是一个类类型,其他类类型都可以new出来,那么String都可以new出来
// new 的方式创建String
String s1 = new String();
System.out.println(s1);
String s2 = new String("我爱JAVA");
System.out.println(s2);
char [] cs = {'俄','乌','开','战','股','市',
'振','荡'
};
String s3 = new String(cs);
System.out.println(s3);
//最简洁的创建方式,也是我们最常用的方式:
String s4 = "开卷有益";
2.2 数字与字符串相互转换
2.2.1 数字转换为字符串
1)String.valueOf() 方法:
// 数字转换为字符串
int a = 0;
String a1 = String.valueOf(a);
System.out.println(a1);
2)封装类输出为字符串
封装类型.toString()方法:
int a = 0;
String a1 = String.valueOf(a);
System.out.println(a1);
Integer a2 = a;
System.out.println(a2.toString());
2.2.2 字符串转换为数字
使用包装类的parse方法:
// 字符串转换为数字:
String a3 = "1.22";
float f = Float.parseFloat(a3);
System.out.println(f);
注意:当字符串包含字母、特殊符号等情况时,转换为数字会出现异常。
2.2.3 字符串转数组
toCharArray
public static void main(String[] args) {
// TODO Auto-generated method stub
String s = "JAVA是世界上最好的语言";
char[] c = s.toCharArray();
for( int i = 0 ; i < c.length ; i++ ) {
System.out.print(" "+c[i]);
}
}
2.3 获取字符串单个字符
charAt方法:
//获取随机字符串的0位字符
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = randomString(8);
System.out.println(str.toString());
System.out.println(str.charAt(0));
}
public static String randomString(int length) {
String pool = "";
for (short i = '0'; i <= '9'; i++) {
pool += (char) i;
}
for (short i = 'a'; i <= 'z'; i++) {
pool += (char) i;
}
for (short i = 'A'; i <= 'Z'; i++) {
pool += (char) i;
}
char cs[] = new char[length];
for (int i = 0; i < cs.length; i++) {
int index = (int) (Math.random() * pool.length());
cs[i] = pool.charAt(index);
}
String result = new String(cs);
return result;
}
2.4 截取字符串
subString方法
public static void main(String[] args) {
// TODO Auto-generated method stub
String s = "我是JAVA攻城狮,精通Python";
String sFromSub = s.substring(0,9);
System.out.println(sFromSub.toString());
}
2.5 分割字符串成子串
split方法,将大串通过分割符分成小串,数量因分隔符而定,结果保存在数组中
public static void main(String[] args) {
// TODO Auto-generated method stub
String s = "我要成为,大厂收割机,因为里面的人很优秀,说话又好听";
String [] sentence = s.split(",");
for(String litSen : sentence) {
System.out.println(litSen.toString());
}
2.6 字符串大小写
虽然字符串是不可变的,但API提供了整串修改大小写的功能
String name = " Sharry";
System.out.println(name.toLowerCase());
System.out.println(name.toUpperCase());
2.7 字符串定位
通过字符串定位的方法,可以得到具体字符、串出现的位置
String love = "我爱爱爱爱爱爱不完!";
// 第一个字符出现位置的下标
System.out.println(love.indexOf("爱"));
// 最后一个该字符出现的位置
System.out.println(love.lastIndexOf("爱"));
// 是否包含该字符串
System.out.println(love.contains("我爱"));
System.out.println(love.contains("我不爱"));
2.8 判断字符串的开头、结尾
startWith 、 endsWith,来判断开头、结尾是否是该字符串
String strDemo = "我叫Sharry,我还是给菜鸟";
String bird = "菜鸟";
System.out.println(strDemo.startsWith("我是"));
System.out.println(strDemo.endsWith(bird));
2.9 字符串替换
虽然字符串创建之后便不能修改(微观上,这点在后面的段落有记录),但可以通过API,进行字段的替换,以达到修改的功能(宏观上)。
String love = "我爱爱爱爱爱爱不完!";
// 替换全部该字段
String notLove = love.replace("爱", "不爱");
// 只替换第一个
String notSoLove = love.replaceFirst("爱", "在爱的区间徘徊");
System.out.println(notSoLove);
System.out.println(notLove);
2.10 字符串比较
比较是否是同一个对象,用==可得出;比较是否值相同,用equals
// 1. 是否是同一个对象
String str1 = "Hello world";
String str2 = new String(str1);
String str3 = "Hello world";
System.out.println(str1 == str2);
System.out.println(str1 == str3);
// 2.字符串是否相同
System.out.println(str1.equals(str2));
3. String不能改变
String一旦创建,就不能改变了。要改变字符串的值,只能借助新建String以及其他方法。
具体原因有大佬总结得很好,此处我们以链接的方式来援引大佬的总结:
参考博文
4. StringBuffer
从上面的链接,我们可以了解到StringBuffer的必要性,作为初学或者快速回顾,我们来快速学习/练习一下StringBuffer的用法吧
我们直接通过例子来学习:
4.1 追加 append
String str = "123456我们来玩过家家";
StringBuffer sb = new StringBuffer(str);
//append 追加
sb.append("什么是过家家");
System.out.println(sb.toString());
4.2 删 delete
//delete 删除起始位置到终止位置的字符
sb.delete(0, 6);
System.out.println(sb.toString());
4.3 插入 insert
//insert 在括号内的位置之后插入新内容
sb.insert(0, "开学了,我们来学习过家家吧");
System.out.println(sb.toString());
4.4 反转 reverse
//反转
sb.reverse();
System.out.println(sb.toString());
总结
本篇文章,我们学习了String这个类类型的基本用法、简单了解了一些特性,最后带过一点StringBuffer的用法。
学习之路才刚刚开始,还有更多API等着我们学习、使用。
我们下一篇见!