Java ——String 类 StringBuffer 和 StringBuilder类 随机字符

本节重点思维导图

String 类

创建字符串

String str = "I love ai";

在代码中遇到字符串常量时,"I love ai",编译器会使用该值创建一个 String 对象

可以使用关键字和构造方法来创建 String 对象

String 类有 11 种构造方法,这些方法提供不同的参数来初始化字符串

比如提供一个字符数组参数:

public class StringDemo{
   public static void main(String args[]){
      char[] helloArray = { 'r', 'u', 'n', 'o', 'o', 'b'};
      String helloString = new String(helloArray);  
      System.out.println( helloString );
   }
}

String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了

如果需要对字符串做很多修改,那么应该选择使用 StringBuffer & StringBuilder 类

比较符号

  •  ==:比较的是两个字符串的地址
  • equals():比较的是两个字符串的内容
String str1 = "abc";
String str2 = "abc";
        
System.out.println(str1.equals(str2));
System.out.println(str1 == str2);

String str3 = new String("abc");
System.out.println(str1.equals(str3));
System.out.println(str1== str3);

实例:

用户登录:果用户输入的用户名和密码分别为zhangsan、123456,则登录成功,否则登录失败。

public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("input name:");
        String name = scanner.next();

        System.out.println("input pwd");
        String pwd = scanner.next();

        if ("zhangsan".equals(name) && "123456".equals(pwd)) {
            System.out.println("success");
        } else {
            System.out.println("failed");
        }
    }

User类:

public class User {
    private int id;
    private String name;
    private byte age;

    public User setId(int id) {
        this.id = id;
        return this;
    }

    public User setName(String name) {
        this.name = name;
        return this;
    }

    public User setAge(byte age) {
        this.age = age;
        return this;
    }

    public static void main(String[] args) {
        User user = new User();
        user.setId(3).setName("fds").setAge((byte) 33);

    }

}
public class StreamFromString {  

    static String src = "今天的天气真的不好";  
    public static void main(String[] args) throws IOException {  

        byte[] buff = new byte[1024];  
        //从字符串获取字节写入流  
        InputStream is = new ByteArrayInputStream(src.getBytes("utf-8"));  
        int len = -1;  
        while(-1 != (len = is.read(buff))) {  
            //将字节数组转换为字符串  
            String res = new String(buff, 0, len);  
            System.out.println(res);  
        }  
    }

 字符串长度——xx.length();

public class StringDemo {
    public static void main(String args[]) {
        String site = "www.runoob.com";
        int len = site.length();
        System.out.println( "菜鸟教程网址长度 : " + len );
   }
}

连接字符串

string1.concat(string2);
"我的名字是 ".concat("Runoob");

更常用:      +

"Hello," + " runoob" + "!"

示例:

public class StringDemo {
    public static void main(String args[]) {     
        String string1 = "菜鸟教程网址:";     
        System.out.println("1、" + string1 + "www.runoob.com");  
    }
}

创建格式化字符串

 String 方法

 

额外:

 这部分比较重点,请看网页最下端笔记内容

 StringBuffer 和 StringBuilder 类

https://www.cnblogs.com/su-feng/p/6659064.html 

 对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类

 和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象

 

String 长度大小不可变

StringBuffer 和 StringBuilder 长度可变

StringBuffer 线程安全 StringBuilder 线程不安全

StringBuilder 速度快

 建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类

public class Test{
  public static void main(String args[]){
    StringBuffer sBuffer = new StringBuffer("菜鸟教程官网:");
    sBuffer.append("www");
    sBuffer.append(".runoob");
    sBuffer.append(".com");
    System.out.println(sBuffer);  
  }
}

详情

示例:

public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        sb.append("aaa");
        sb.append("bbb");
        sb.append("ccc");

        System.out.println(sb);

        sb.insert(3, "1234");
        System.out.println(sb);

        sb.insert(4, true);
        System.out.println(sb);

        sb.deleteCharAt(8);
        System.out.println(sb);

        sb.delete(3, 6);
        System.out.println(sb);

        int length = sb.length();
        System.out.println(length);

        sb.reverse();
        System.out.println(sb);
        
        StringBuffer stringBuffer = new StringBuffer();
        stringBuffer.append("aa").append("bb").append("cc");
        System.out.println(stringBuffer);
    }

产生随机字符

public static void main(String[] args) {
        String string = UUID.randomUUID().toString();
        System.out.println(string);
        System.out.println(string.length());
    }
原文地址:https://www.cnblogs.com/expedition/p/10852717.html