比较基本数据类型:比较的是具体的值 比较引用数据类型:比较的是对象地址值
方法介绍:
public boolean equls(String s) 比较两个字符串内容是否相同、区分大小写
示例:
/* equals方法介绍 比较两个字符串内容是否相同、区分大小写 */ public class StringDemo01 { public static void main(String[] args) { // 构造方法得到对象 char[] chs = {'a', 'b', 'z'}; String s1 = new String(chs); String s2 = new String(chs); // 直接赋值的方式 String s3 = "abz"; String s4 = "abz"; // 比较字符串地址是否相同 System.out.println(s1 == s2); // false System.out.println(s1 == s3); // false System.out.println(s3 == s4); // true // 比较字符串内容是否相同 System.out.println(s1.equals(s2)); // true System.out.println(s1.equals(s3)); // true System.out.println(s3.equals(s4)); // true } }已知用户名和密码,请用程序实现模拟用户登录。总共给三次机会,登录之后,给出相应的提示
package demo07.demo01; import java.util.Scanner; /* #### 1.2.1案例需求 已知用户名和密码,请用程序实现模拟用户登录。 总共给三次机会,登录之后,给出相应的提示 */ public class StringTest01 { public static void main(String[] args) { String name = "joker"; String code = "abc123"; Scanner sc = new Scanner(System.in); for (int i = 0; i < 3; i++) { System.out.println("请输入用户名"); String username = sc.nextLine(); System.out.println("请输入密码"); String password = sc.nextLine(); System.out.println("--------------"); if (name.equals(username) && code.equals(password)) { System.out.println("登陆成功!!!" + username + " 欢迎你。"); break; } else { if (2 - i == 0) { System.out.println("您的账户已经被锁定,请联系管理员。"); } else { System.out.println("对不起,用户名或密码不正确。请重新输入。机会:" + (2-i)); } } } } }键盘录入一个字符串,使用程序实现在控制台遍历该字符串
package demo07.demo01; import java.util.Scanner; /* #### 1.3.1案例需求 键盘录入一个字符串,使用程序实现在控制台遍历该字符串 */ public class StringTest02 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入字符串!"); String str = sc.nextLine(); fun(str); } // 定义遍历方法。 public static void fun(String str) { for (int i = 0; i < str.length(); i++) { char ch= str.charAt(i); System.out.print(ch + " "); } } }键盘录入一个字符串,统计该字符串中大写字母字符,小写字母字符,数字字符出现的次数(不考虑其他 字符)
package demo07.demo01; import java.util.Scanner; /* 1.4统计字符次数案例【应用】 1.4.1案例需求 键盘录入一个字符串,统计该字符串中大写字母字符,小写字母字符, 数字字符出现的次数(不考虑其他字符) */ public class StringTest03 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入字符串。"); String str = sc.nextLine(); fun(str); } // 定义方法 public static void fun(String str) { int a = 0; int b = 0; int c = 0; int d = 0; for (int i = 0; i < str.length(); i++) { char ch = str.charAt(i); if (ch >= 'A' && 'Z' >= ch) { a++; } else if (ch >= 'a' && 'z' >= ch) { b++; } else if (ch >= '0' && '9' >= ch) { c++; } else { d++; } } System.out.println("大写:" + a); System.out.println("小写:" + b); System.out.println("数字:" + c); System.out.println("其他:" + d); } }定义一个方法,把 int 数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法, 并在控制台输出结果。例如,数组为 int[] arr = {1,2,3}; ,执行方法后的输出结果为:[1, 2, 3]
/* ### 1.5字符串拼接案例【应用】 #### 1.5.1案例需求 定义一个方法,把 int 数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法, 并在控制台输出结果。例如,数组为 int[] arr = {1,2,3}; 执行方法后的输出结果为:[1, 2, 3] */ public class StringTest04 { public static void main(String[] args) { int[] arr = {1, 2, 3}; String str = fun(arr); System.out.println(str); } private static String fun(int[] arr) { String str = "["; for (int i = 0; i < arr.length; i++) { if (i == arr.length-1) { str+=(arr[i] + "]"); } else { str+=(arr[i] + ", "); } } return str; } }定义一个方法,实现字符串反转。键盘录入一个字符串,调用该方法后,在控制台输出结果 例如,键盘录入 abc,输出结果 cba
import java.util.Scanner; /* ### 1.6字符串反转案例【应用】 #### 1.6.1案例需求 定义一个方法,实现字符串反转。键盘录入一个字符串,调用该方法后,在控制台输出结果 例如,键盘录入 abc,输出结果 cba */ public class StringTest05 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入字符串"); String str1 = sc.nextLine(); String str = fun(str1); System.out.println(str); } private static String fun(String str1) { String str = ""; for (int i = str1.length() - 1; i >= 0; i--) { str+=str1.charAt(i); } return str; } }StringBuilder 是一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是 StringBuilder 对象中的内容是可变的
String类:内容是不可变的 StringBuilder类:内容是可变的
常用构造方法
方法名说明public StringBuilder()创建一个空白可变字符串对象,不含有任何内容public StringBuilder(String str)str) 根据字符串的内容,来创建可变字符串对象示例:
package demo07.demo01; public class StringTest06 { public static void main(String[] args) { // public StringBuilder() :创建一个空白可变的字符串对象,不含有任何内容。 StringBuilder sb = new StringBuilder(); System.out.println(sb); System.out.println(sb.length()); System.out.println("-----------"); // public StringBuilder(String str) :根据字符串的内容,来创建可变字符串对象 StringBuilder sb2 = new StringBuilder("hello"); System.out.println(sb2); System.out.println(sb2.length()); } }添加和反转方法
方法名说明public StringBuiilder append(任意类型)添加数据,并且返回对象本身public StringBuilder reverse()返回相反的字符序列方法名说明
package demo07.demo01; public class StringTest07 { public static void main(String[] args) { // 创建对象 StringBuilder sb = new StringBuilder(); // public StringBuilder append(任意类型):添加数据,并返回对象本身 StringBuilder sb2 = sb.append("hello"); System.out.println(sb); System.out.println(sb2); System.out.println(sb == sb2); // true // 链式编程 sb.append("hello").append("world").append("java").append(100); System.out.println(sb); // public StringBuilder reverse() :返回相反的字符序列 sb.reverse(); System.out.println(sb); } }StringBuilder转换为String
public String toString() :通过toString()就可以实现把 StringBuilder 转换为 String
String转换为StringBuilder
public StringBuilder(String s) :通过构造方法就可以实现把 String 转换为 StringBuilder
定义一个方法,把 int 数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法, 并在控制台输出结果。例如,数组为int[] arr = {1,2,3}; ,执行方法后的输出结果为:[1, 2, 3]
代码实现:
package demo07.demo01; /* 2.6字符串拼接升级版案例【应用】 #### 2.6.1案例需求 定义一个方法,把 int 数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法, 并在控制台输出结果。例如,数组为int[] arr = {1,2,3}; 执行方法后的输出结果为:[1, 2, 3] */ public class StringTest09 { public static void main(String[] args) { int[] arr = {1, 2, 3}; String s = fun(arr); System.out.println(s); } private static String fun(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] + ", "); } } String s = sb.toString(); return s; } }定义一个方法,实现字符串反转。键盘录入一个字符串,调用该方法后,在控制台输出结果 例如,键盘录入abc,输出结果 cba
package demo07.demo01; import java.util.Scanner; /* 2.7字符串反转升级版案例【应用】 2.7.1案例需求 定义一个方法,实现字符串反转。键盘录入一个字符串,调用该方法后,在控制台输出结果 例如,键盘录入abc,输出结果 cba */ public class StringTest10 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入字符串:"); String s = sc.nextLine(); s = fun(s); System.out.println(s); } private static String fun(String s) { StringBuilder sb = new StringBuilder(s); sb.reverse(); String s1 = sb.toString(); return s1; } } 请定义一个方法用于判断一个字符串是否是对称的字符串,并在主方法中测试方法。例如:“abcba”、"上海自来水来自海上"均为对称字符串。
package demo07.demo01; import java.util.Scanner; /* ### 题目1: 请定义一个方法用于判断一个字符串是否是对称的字符串,并在主方法中测试方法。 例如:"abcba"、"上海自来水来自海上"均为对称字符串。 */ public class StringTest11 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入字符串"); String s = sc.nextLine(); fun(s); } private static void fun(String s) { StringBuilder sb = new StringBuilder(s); StringBuilder rs = sb.reverse(); if (s.equals(rs)){ System.out.println("对称。"); } else { System.out.println("不对称。"); } } }