20220720 学习笔记分享
java学习序列6
今日重点 :String字符串
String字符串
String字符串是一个类,类当中可以有属性,方法,构造器。String一旦声明,不可以改变。
对于基本数据类型,比如int来说,如果你新赋一个值,他会把原来的值,给“干掉”。
对于String来说,在内存级别中,你定义了一个String类型的值,它会一直在内存中
字符串也有长度,也有下标
字符串常用方法:
1. length() 取得字符串的长度,和数组长度区别:数组length是属性,字符串length()是方法
String s1 = "abcdefg"; String s2 = new String("abcdefg"); System.out.println(s1.length()); System.out.println(arr.length);
2. 对象名.equals(String 类型参数),返回值boolean类型true,false
String s1 = new String("abcdefg"); String s2 = new String("abcdefg"); System.out.println(s1.equals(s2);
3. indexOf()字符寻找位置,返回int,lastIndexOf(),从后往前找
public static void main(String[] args) { String s1 = "abcdefgabcdaaa"; s1.indexOf('a'); // 判断指定字符串是否存在,返回值为字符串在s1的下标 // 返回从左到右遇到的第一个匹配的下标 // 如果不存在。返回-1 // indexOf(String,int)代表从int位置开始查找,包括当前位置 // System.out.println(s1.indexOf("a",8)); // 从后往前找 System.out.println(s1.lastIndexOf("a",12)); }
4.String 类的 indexOf()方法在字符串中查找子字符串出现的位置,如过存在返回字符串出现的位置(第一位为0),如果不存在返回 -1
5. 字符串函数 substring()函数来截取字符串中的一个字符
public static void main(String[] args) { // 字符串的截取 String str = "abcdefghijklmn"; /* 如果传一个参数,从指定位置开始截取,直到字符串的末尾 考虑一下? 包不包括1位置的字符,包括起始位置的字符 生成一个新的字符串,不会改变原有数据 */ String s = str.substring(1); // bc or b // 包含起始位置,不包含终止位置 s = str.substring(1,2); System.out.println(s); }
6. replace方法可以替换字符串中的字符
String str="Hello World,Hello Java."; System.out.println(str.replace('H','W')); //替换全部 System.out.println(str.replaceFirst("He","Wa")); //替换第一个遇到的 System.out.println(str.replaceAll("He", "Ha")); //替换全部
7. Javareverse()可字符串反转
8. split(string)方法通过指定分隔符将字符串分割为数组。
String str="www-baidu-com"; String[] temp; String delimeter = "-"; //指定分隔符 temp = str.split(delimeter); //分割字符串 //普通for循环 for(int i =0; i < temp.length; i++){ System.out.println(temp[i]); System.out.println(""); }
9. String toUpperCase() 方法将字符串从小写转为大写
10. concat() 连接两个字符串
11. trim() 去掉起始和结尾的空格
12. valueOf() 转换为字符串
int [] arr = new int[]{1,2,3,4,5}; int i= 10; 把int类型转成字符串(推荐) String s = String.valueOf(i); s = new String(i);
13. charAt() 取出指定下标位置的字符
public static void main(String[] args) { String s1 = "abcdefg"; System.out.println(s1.charAt(0)); Scanner sc = new Scanner(System.in); char c = sc.next().charAt(0); 字符串转int要+1 System.out.println(c + 1); }
14. contains() 方法用于判断字符串中是否包含指定的字符或字符串
15. substring(),截取字符串;substring(1),字符串下标包括1之后的;substring(0,3),字符串0到2,不包括3
16. startswith("a",2)是不是以什么开头,从2开始
17. endswith()是不是以什么结尾
18.equalscase() 忽略大小写
包装器类型(包装类,封装类)
* byte Byte
* short Short
* int Integer
* long Long
* float Float
* double Double
* char Character
* boolean Boolean
原理:
(自动)装箱:把int类型包装成了包装器Integer类型。基本数据类型转换成对应的包装器类型
Integer i2 = Integer.valueOf(50);
(自动)拆箱:把Integer类型转换成int类型。包装器类型转换成对应的基本数据类型
int ii2 = i2.intValue();
JDK5以后的新功能:
- 自动装箱和自动拆箱
- 增强for循环(foreach)
- 枚举(switch case)
JDK7以后的新功能:
Switch...case可以用String
今日总结
今天学习的内容还比较容易,都听懂了,只是练习挺难得又不会做。。。