Java字符串常用的基础知识
//String是系统类! 所以建文件名字需要注意 !!!
理论就不说了,直接上代码直观了解~~~~嘿嘿嘿~~
1.字符串的创建
//方式1.直接赋值
String str1 = "hello world";
//方式2.通过字符型数组创建字符串
char[] data = {'y', 'h', 'l'};
String str2 = new String(data);
//方式3.通过字符数组的一部分创建字符串
char[] charArray = {'l', 'o', 'v', 'e'};
String str3 = new String(charArray, 2 , 1);
//参数2:是从哪个字符开始 参数3:是截取几个(长度)
System.out.println(str3);
//方法4.通过字符创建另一个字符串
String str4 = new String(str1);//注意经常用于可变转不可变字符串
System.out.println(str4);
2.字符串的比较
//方式1: == 比较的是字符串的地址
String str5 = "haha"; //常量区
String str6 = new String("haha"); //堆区
System.out.println(str5 == str6);
String str7 = "haha";
System.out.println(str5 == str7);
//方式2: equals 只比较值
System.out.println(str5.equals(str6));
System.out.println(str5.equals(str7));
//方式3:equalsIgnoreCase 忽略大小写
str6 = "HaHa";
System.out.println(str5.equalsIgnoreCase(str6));
3.判断字符串的前缀和后缀
//endWith : 判断字符串以.....结尾
String str8 = "变形金刚.avi";
System.out.println(str8.endsWith(".avi"));
//startWith:判断字符串以....开头
String str9 = "沙雕凯";
System.out.println(str9.startsWith("沙"));
//compareTo: 字符串比较,是逐个字符进行比较,返回ASCII值
str8 = "ABC";
str9 = "AAc";
System.out.println(str8.compareTo(str9));
// compareToIgnoreCase忽略大小写
System.out.println(str8.compareToIgnoreCase(str9));
4.求字符串的长度length
String str10 = "you are beautiful";
System.out.println(str10.length());
str10 = "好好学习吧!";
System.out.println(str10.length());
5.判断字符串是否为空
String str11 = null;
String str12 = "";
//禁止null调用任何对象的方法
if(str11 != null && str11.length() != 0) {
System.out.println(str11 + "不是空字符串");
}else {
System.out.println(str11 + "是空字符串");
}
//判断是否为空 如果为空则为true
System.out.println(str12.isEmpty());
//另一种方式 判断空串
if(str12 != null && !str12.isEmpty()) {
System.out.println("不是空字符串");
}else {
System.out.println("是空字符串");
}
6.字符串转换
String str13 = "lucky dog";
//大写
System.out.println(str13.toUpperCase());
System.out.println(str13); //原字符串没有变换
//小写toLowerCase()
str13 = "Lucky Dog";
String lowerStr = str13.toLowerCase();
System.out.println(lowerStr);
System.out.println(str13);
//字符串转数组
char[] charArr = str13.toCharArray();
for (int i = 0; i < charArr.length; i++) {
System.out.println(charArr[i]);
}
//转其他类型
int a = 5566;
//方式1:拼接空字符串
String s1 = a + "";
System.out.println(s1);
//方式2:String.valueOf(数据)
String s2 = String.valueOf(a);
//valueOf(此处基本类型皆可转换)
//字符串转其他类型
String s3 = "2020500";
//方式1:其他数据类型.valueOf(字符串) 即可转换
int b = Integer.valueOf(s3);
double c = Double.valueOf(s3);
float d = Float.valueOf(s3);
//方式2:其他类型.parse其他类型(字符串)
long e = Long.parseLong(s3);
String s4 = "true";
boolean f = Boolean.parseBoolean(s4);
/*
* int float long 等属于基本数据类型(参照C语言)
* Integer Double Float Boolean 他们是Java中包装的类型
* 是为了封装一些方法而定义的类!
*/
7.字符串的拼接
String s5 = "you see see you ";
String s6 = "one day day";
//方式1: concat
String s7 = s5.concat(s6);
System.out.println(s7);
8.字符串的查找
String s8 = "大学生活好啊,好吗?你说好就好!";
//方式1:indexOf() 正向查找,返回第一次出现的位置,找不到就返回-1
System.out.println(s8.indexOf("?"));
System.out.println(s8.lastIndexOf("好")); //最后一次出现的位置
System.out.println(s8.indexOf("好", 5));
//方法2:contains 是否包含 boolean类型返回值
System.out.println(s8.contains("哈哈哈"));
9.获取字符串的一部分
String str = "好好学习,天天向上";
//方式1:chatAt() 通过下标 获取某个字符
System.out.println(str.charAt(3));
//方法2:substring()
System.out.println(str.substring(1));
System.out.println(str.substring(3, 7));
10.替换字符串
String s9 = "好好学习Java,天天想我";
//方式1:replace() 就是把字符串中所有匹配到的字符串进行替换
System.out.println(s9.replace("学习", "睡觉"));
//方法2:replaceFirst() 只替换一个
System.out.println(s9.replaceFirst("Java", "python"));
11.分割字符串 就是按照某个字符 将字符串切成数组
//\\转义字符
String s10 = "www|1304A|com";
String[] strArray = s10.split("\\|");
for (int i = 0; i < strArray.length; i++) {
System.out.println(strArray[i]);
}
s10 = "www.993bt|com";
// split("|") 单竖杠 是或者! 所以才需要添加\\转义
strArray = s10.split("\\.|\\|");
for (int i = 0; i < strArray.length; i++) {
System.out.println(strArray[i]);
}
12.去除收尾空格trim
String s11 = " 哈哈";
System.out.println(s11);
System.out.println(s11.trim());
举个栗子:
例1. 输出“财色兼收”的第一个和最后一个字(这个栗子比较简单)
//我没有写main函数,若要运行出结果必须加上main函数
String s12 = "财色兼收";
System.out.println(s12.charAt(0));
System.out.println(s12.charAt(3));
例2.给出一串英语句子,把句子中的每个单词的首字母大写
String s = "i want to fuck you";
String[] sArray = s.split(" ");
String newStr = "";
for(int i = 0; i < sArray.length; i++) {
String firstChar = String.valueOf(sArray[i].charAt(0));
// System.out.println(firstChar);
String upperStr = firstChar.toUpperCase();
System.out.println(upperStr);
//替换
String firstUppercase = sArray[i].replace(firstChar, upperStr);
newStr = newStr + firstUppercase + " ";
}
System.out.println(newStr);