关于String类的构造方法
- String(String original):把字符串数据封装成字符串对象
- String(char[] value):把字符数组的数据封装成字符串对象
- String(char[] value, int index, int count):把字符数组中的一部分数据封装成字符串对象
public static void main(String[] args) {
//方式1
//String(String original):把字符串数据封装成字符串对象
String method1 = new String("hello");
System.out.println("method1:"+method1 );
System.out.println("---------");
//方式2
//String(char[] value):把字符数组的数据封装成字符串对象
char[] chs = {'h','e','l','l','o'};
String method2 = new String(chs);
System.out.println("method2:"+method2);
System.out.println("---------");
//方式3
//String(char[] value, int index, int count):把字符数组中的一部分数据封装成字符串对象
//String s3 = new String(chs,0,chs.length);
String method3 = new String(chs,1,3);
System.out.println("method3:"+method3);
System.out.println("---------");
//方式4
String method4 = "hello";
System.out.println("method4:"+method4);
}
}
这里的直接赋值创建的对象和构造方法创建的对象是有区别的,直接赋值创建的对象在是在当前方法区内的常量池里的,而构造方法创建的字符串对象是在堆内存里的。
关于String类的判断功能
- boolean equals(Object obj):比较字符串的内容是否相同
- boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写
- boolean startsWith(String str):判断字符串对象是否以指定的str开头
- boolean endsWith(String str):判断字符串对象是否以指定的str结尾
public static void main(String[] args) {
//创建字符串对象
String str1 = "hello";
String str2 = "hello";
String str3 = "Hello";
//boolean equals(Object obj):比较字符串的内容是否相同,大小写会区分
System.out.println(str1.equals(str2));
System.out.println(str1.equals(str3));
System.out.println("-----------");
//boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写
System.out.println(str1.equalsIgnoreCase(str2));
System.out.println(str1.equalsIgnoreCase(str3));
System.out.println("-----------");
//boolean startsWith(String str):判断字符串对象是否以指定的str开头,endwith是否以指定的结尾
System.out.println(str1.startsWith("he"));
System.out.println(str1.startsWith("ll"));
System.out.println(str2.endsWith("heo"));
// System.exit(0);
}
关于String类的获取功能
- int length():获取字符串的长度,其实也就是字符个数
- char charAt(int index):获取指定索引处的字符
- int indexOf(String str):获取str在字符串对象中第一次出现的索引,如果没有返回-1
- String substring(int start):从start开始截取字符串
- String substring(int start,int end):从start开始,到end结束截取字符串,包括start,不包括end
public static void main(String[] args) {
String str= "abcdefg";
System.out.println("str长度:"+str.length());//获取字符长度
System.out.println("--------------------");
System.out.println("str.0:"+str.charAt(0));//过去字符串的指定索引的值
System.out.println("str.1:"+str.charAt(1));
System.out.println("--------------------");
System.out.println(str.indexOf("cf"));//找到在字符串中第一次出现的索引值返回,如果没找到返回-1
System.out.println(str.indexOf("fg"));
System.out.println("---------------------");
System.out.println(str.substring(2, 5));//从开始位置到结束位置的字符,[start,end) : >=2 <5
System.out.println("------------------------");
for(int i =0 ; i<str.length();i++){//遍历字符串
System.out.print(str.charAt(i)+" ");
}
}
关于String类的转换方法
- char[] toCharArray():把字符串转换为字符数组
- String toLowerCase():把字符串转换为小写字符串
- String toUpperCase():把字符串转换为大写字符串
//例子:键盘录入一个字符串,把该字符串的首字母转成大写,其余为小写。(只考虑英文大小写字母字符)
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一段字符串:");
String str = sc.nextLine();
String start=str.substring(0, 1).toUpperCase();
String end =str.substring(str.length()-1, str.length()).toUpperCase();
String middle= str.substring(1, str.length()-1).toLowerCase();
System.out.println("变化后为:");
System.out.println(start+middle+end);
}
另外
- String类型转换成StringBuilder类型:可以看一看StringBuilder的构造方法
- String类型转换成int类型:可以看一看Integer的构造方法
关于String类的其他功能
- String trim():去除字符串两端空格
- String[] split(String str):按照指定符号分割字符串
public static void main(String[] args) {
//创建字符串对象
String s1 = "helloworld";
String s2 = " helloworld ";
String s3 = " hello world ";
System.out.println("---"+s1+"---");
System.out.println("---"+s1.trim()+"---");
System.out.println("---"+s2+"---");
System.out.println("---"+s2.trim()+"---");
System.out.println("---"+s3+"---");
System.out.println("---"+s3.trim()+"---");
System.out.println("-------------------");
//String[] split(String str)
//创建字符串对象,按照指定符号进行分割
String s4 = "aa,bb,cc";
String[] strArray = s4.split(",");
for(int x=0; x<strArray.length; x++) {
System.out.println(strArray[x]);
}
}
小案例(字符翻转)
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一段字符串:");
String str=sc.nextLine();
// String s=fanzhuan(str);
String s[]=fanzhuan2(str);
for(String i:s){
System.out.print(i);
}
}
//方法1:
// public static String fanzhuan(String str) {
// char[] arr=str.toCharArray();
// char p=0;
// for(int i=0;i<(arr.length/2);i++){
// p=arr[i];
// arr[i]=arr[arr.length-i-1];
// arr[arr.length-i-1]=p;
// }
// String s=" ";
// for(int i=0;i<arr.length;i++){
// s+=arr[i];
// }
// return s.trim();
// }
//方法2:
public static String[] fanzhuan2(String str) {
char[] arr=str.toCharArray();
String[] brr=new String[arr.length];
char p=0;
for(int i=0;i<(arr.length/2);i++){
p=arr[i];
arr[i]=arr[arr.length-i-1];
arr[arr.length-i-1]=p;
}
for(int i=0;i<brr.length;i++){
brr[i]=String.valueOf(arr[i]);
}
return brr;
}
总结
没啥好总结的,记录一下尝试写博客1
loverara ↩︎