Java-String类总结
1.String构造方法创建字符串对象(创建多个对象)
char[] chars = {'a','b','c'};
byte[] bytes = {97,98,99};
String s1 = new String(s1);
2.直接赋值(创建一个对象,常量池)
3.字符串比较(equals())
== 比较字符串地址值是否相同
equals()比较字符串内容是否相同
char[] chars = {'a','b','c'};
String s1 = new String(chars);
String s2 = new String(chars);
System.out.println(s1 == s2);
System.out.println(s1.equals(s2))
用户登录案例
//已知用户名和密码,定义连个字符串
//要登录的用户名用Scanner录入
//用已知的和键盘输入的用equals()方法比较
//采用for循环,登陆成功,break;跳出
public class StringDemo01{
public static void main(String[] arg){
String userName = "marui";
String passWord = "123456";
for(int i=0; i<3; i++){
Scanner s = new Scanner(System.in);
System.out.println("请输入账户名:");
String name = s.nextLine();
System.out.println("请输入密码:");
String pwd = s.nextLine();
if(userName.equals(name) && passWord.equals(pwd)){
System.out.println("登录成功");
break;
}else{
System.out.print("登录失败,你还有"+(2-i)+"机会");
}
}
}
}
常用的String方法
1..charAt(int index)
相当于打印出来
返回 char
指定索引处的值。
2.length()
返回此字符串的长度。
例:
遍历字符串
public class StringMethodDemo03 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串:");
String s = sc.nextLine();
for (int i = 0; i <s.length() ; i++) {
System.out.println(s.charAt(i));
}
}
}
需求:键盘录入一个字符串,统计该字符串中大写字母字符,小写字母字符,数字字符出现的次数(不考虑其他字符)
统计字符次数
//两个明确:1.方法的参数
// 2.方法的返回值
public class StringArrayToStringDemo01 {
public static void main(String[] args) {
int[] arr = {5,3,2,7};
String s = arrayToString(arr);
System.out.println("s:"+s);
}
public static String arrayToString(int[] arr){
String s = "";
s += "[";
for (int i = 0; i <arr.length ; i++) {
if (i == arr.length-1){
s+=arr[i];
}else {
s+=arr[i]+",";
}
}
s+="]";
return s;
}
}
字符串反转
需求:定义一个方法,实现字符串反转。键盘录入一个字符串,调用该方法后,在控制台输出结果例如,键盘录入abc,输出结果cba
public class StringReverseDemo01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串:");
String s = sc.nextLine();
String s1 = reverse(s);
System.out.println("反转后:"+s1);
}
public static String reverse(String s){
String ss = "";
for (int i = s.length()-1;i >= 0;i--){
ss+= s.charAt(i);
}
return ss;
}
}
StringBuilder
- 一个可变的字符序列,节约时间,成本,内存比String
1.构造方法
空构造,和有参构造(自己查帮助文档)
String和StringBuilder的类型相互转换
String——>StringBuilder
用StringBuilder的构造方法就可以实现
StringBuilder sb = new StringBuilder("Hello");
StringBuilder——>String
使用StringBuilder的toString方法
StringBuilder sb = new StringBuilder("Hello");
String s = sb.toString();
常用的StringBuilder方法
append(String str)
revers();
toStringa();
将指定的字符串附加到此字符序列
字符串拼接升级
public class StringBuilderDemo02 {
public static void main(String[] args) {
int[] arr = {1,5,6,7,9};
String s = sbToString(arr);
System.out.println(s);
}
public static String sbToString(int[] arr){
StringBuilder sb = new StringBuilder();
sb.append("[");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length-1) {
sb.append(arr[i]);
}else {
sb.append(arr[i]).append(",");
}
}
sb.append("]");
String s = sb.toString();//因为sb是StringBuilder类型,所以要通过toString方法转换成String类型
return s;
}
}