天天看点

Java中String与StringBuilder的联系与区别以及各自常用的方法

String是不可变长的字符串,初始化之后不可变长了。

StringBuilder是可变长的字符串,可用append("")方法实现变长的字符串。

String中好用的方法:charAt(index),equals("")

//index从0开始,表示第一个元素
String line="goodjava";
line.charAt(index):
           

因为charAt(index)可以获取到字符串中每一个元素,所以我们结合字符串的length()方法,便可以实现字符串的遍历。遍历实现如下:

/*
键盘输入字符串并进行遍历
 */
public class TraverseStringClass {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入字符串:");
        String line = sc.nextLine();
        System.out.println("遍历的结果是:");
        //charAt(index)是用索引来获取字符串中元素
        for(int i=0;i<line.length();i++)
        {
            System.out.println(line.charAt(i));
        }
        System.out.println("字符串的长度是"+line.length());
    }
}
           

结果如下:

Java中String与StringBuilder的联系与区别以及各自常用的方法

可以利用equals("")方法制作一个简单的登陆系统:已知账号密码(一般这是从数据库里面获取的),检验登陆,机会只有三次。

package PracticePackage;

import java.util.Scanner;

/*
已知账号密码,设置几种判定条件,检验登录状态
 */
public class LoginClass {
    public static void main(String[] args) {
        String username = "zk";
        String password = "123";
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < 3; i++) {
            System.out.println("请输入你的账号:");
            String name = sc.nextLine();
            System.out.println("请输入你的密码:");
            String psw = sc.nextLine();
            if (username.equals(name) && password.equals(psw)) {
                System.out.println("你的密码正确,登陆成功");
                break;
            } else {
                //i=0时,失败后有2次机会
                //i=1,1次机会
                //i=2,0次机会
                if (2 - i == 0) {
                    System.out.println("三次机会用尽,账号锁定!");
                } else {
                    System.out.println("你的密码错误,登陆失败");
                    System.out.println("你还有" +
                            (2 - i) +
                            "次机会!");
                }
            }
        }

    }
}
           

结果如下:

Java中String与StringBuilder的联系与区别以及各自常用的方法
Java中String与StringBuilder的联系与区别以及各自常用的方法

StringBuilder中好用的两个方法:append(“xxx”),reverse()

StringBuilder sb=new StringBuilder();
sb.append("xxx") ;
  sb.reverse();
           
/*
实现变长字符串的增添与倒转
 */
package PracticePackage;

public class StringAndStringBuilder {
    public static void main(String[] args) {
//        System.out.println("请输入字符串");

        StringBuilder sb=new StringBuilder();
        //append("xxx")方法是往sb对象里面添加"xxx"字符串,可以一直append(),因此说StringBuilder是变长的字符串
//        sb.append("nice");
//        sb.append("java");
        sb.append("nice").append("java");
        System.out.println(sb);
//        reverse()实现字符串的倒转
        sb.reverse();
        System.out.println(sb);
    }
}
           

结果如下:

Java中String与StringBuilder的联系与区别以及各自常用的方法

String与StringBuilder之间的相互转换:转换后可以利用各自的方法与返回值

Java中String与StringBuilder的联系与区别以及各自常用的方法
package PracticePackage;

import javax.lang.model.element.NestingKind;
import java.util.Scanner;

/*
介绍String与StringBuilder的相互转换
 */
public class StringtransformStringBuilder {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入字符串:");
        String name = sc.nextLine();
        //String->StringBuilder利用StringBuilder的构造函数
        //转化后,原来String的定长字符串可以利用StringBuilder的好用方法。如append(""),reverse()
        StringBuilder sb=new StringBuilder(name);
        sb.append("我是转换后后面加的");
        System.out.println(sb);
        //StringBuilder->String利用StringBuilder对象sb的toString()方法
//        利用String对象的charAt(index)方法
        String s="";
        s=sb.toString();
        System.out.println(s.charAt(0));
    }

}
           

结果如下:

Java中String与StringBuilder的联系与区别以及各自常用的方法