String的构造方法
-
package String; //推荐使用直接赋值的方式创建字符串 public class StringDemo { public static void main(String[] args) { //public String():创建一个空白字符串 String s1=new String(); System.out.println("s1:"+s1); //public String(char[] chs):根据字符数组的内容,来创建字符串对象 char[] chs={'a','b','c'}; String s2=new String(chs); System.out.println("s1:"+s2); //public String(byte[] bys):根据字节数组的内容,来创建字符串对象 byte[] bys={97,98,99}; String s3=new String(bys); System.out.println("s1:"+s3); //String s="abc":没有用构造方法,直接赋值的方式创建字符串对象,内容是abc String s4="abc"; System.out.println("s1:"+s4); } }
2.3 String对象的特点
-
2.4字符串的比较
-
package String; public class StringDemo2 { public static void main(String[] args) { //构造方法的方式得到对象 char[] chs={'a','b','c'}; String s1=new String(chs); String s2=new String(chs); //直接赋值的·方式得到对象 String s3="abc"; String s4="abc"; //比较字符串地址是否相同 System.out.println(s1==s2); //false System.out.println(s1==s3); //false System.out.println(s3==s4); //true System.out.println("------------"); //比较字符串内容是否相同 System.out.println(s1.equals(s2)); //true System.out.println(s1.equals(s3)); //true System.out.println(s3.equals(s4)); //true } }
案例:用户登录
package String;
import java.util.Scanner;
public class StringTest01 {
public static void main(String[] args) {
//已知用户名和密码,定义两个字符串表示即可
String username = "sff";
String password = "123456";
//用循环实现多次机会,,这里的次数明确,采用for循环实现,并在登录成功的时候,采用break结束循环
for (int i = 0; i < 3; i++) {
//键盘录入要登入的用户和密码,用Scanner实现
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名:");
String name = sc.nextLine();
System.out.println("请输入密码:");
String pwd = sc.nextLine();
//拿键盘录入的用户名和已知的用户名,密码进行比较,给出相应的提示,字符串的内容比较,用equals()方法实现
if (name.equals(username) && pwd.equals(pwd)) {
System.out.println("登录成功");
break;
} else {
if (2-i == 0) {
System.out.println("你的账户被锁定,请与管理员联系");
} else {
//剩余次数是2,1,0
//而i的值是0,1,2
System.out.println("登录失败,你还有" + (2 - i) + "次机会");
}
}
}
}
}
案例:遍历字符串
package String;
import java.util.Scanner;
public class StringTest02 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字符串:");
String line = sc.nextLine();
//System.out.println(line.charAt(0));
//System.out.println(line.charAt(1));
//System.out.println(line.charAt(2));
//用循环改进
//for (int i=0;i<3;i++){
// System.out.println(line.charAt(i));
//}
System.out.println(line.length());
for (int i=0;i<line.length();i++){
System.out.println(line.charAt(i));
}
}
}
案例: 统计字符次数
package String;
import java.util.Scanner;
public class StringTest03 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字符串:");
String line = sc.nextLine();
int bigCount=0;
int smallCount=0;
int numberCount=0;
for (int i=0;i<line.length();i++){
char c = line.charAt(i);
if (c>='A'&&c<='Z'){
bigCount++;
}else if (c>='a'&&c<='z'){
smallCount++;
}else if (c>='0'&&c<='9'){
numberCount++;
}
}
System.out.println("大写字母:"+bigCount+"个");
System.out.println("小写字母"+smallCount+"个");
System.out.println("数字"+numberCount+"个");
}
}
StringBuilder
StringBuilder的构造方法
StringBuilder的添加和反转
String和StringBuilder的相互转换
案例:拼接字符串
升级版
package String;
public class StringTest04 {
public static void main(String[] args) {
int[] arr={1,2,3};
String s = arrayToString(arr);//调用方法
System.out.println("s:"+s);
}
//定义一个方法
/*两个明确:
返回值类型:String
参数:int[] arr
*/
/* 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+=", ";
}
}
s+="]";
return s;
*/
public static String arrayToString(int[] arr){
StringBuilder sb=new StringBuilder();
sb.append("[");
for (int i=0;i<arr.length;i++){
if (i==arr.length-1){
sb.append(i);
}else{
sb.append(arr[i]).append(", ");
}
}
sb.append("]");
String s=sb.toString();
return s;
}
}
案例:字符串反转
package String;
import java.util.Scanner;
public class StringTest05 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字符串:");
String line = sc.nextLine();
String s = reverse(line);
System.out.println("s:"+s);
}
public static String reverse(String s){
String ss = "";
for (int i=s.length()-1;i>=0;i--){
ss += s.charAt(i);
}
return ss;
}
}
升级版
package String;
import java.util.Scanner;
public class StringTest05 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字符串:");
String line = sc.nextLine();
String s = myReverse(line);
System.out.println("s:"+s);
}
public static String myReverse(String s){
// StringBuilder sb =new StringBuilder(s);
// sb.reverse();
// String ss = sb.toString();
// return ss;
return new StringBuilder(s).reverse().toString();
}
}