zoukankan      html  css  js  c++  java
  • 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());
        }
  • 相关阅读:
    捕捉整个桌面的图片
    在Image控件中绘制文字
    绘图
    Image1.Canvas画图笔刷
    将图片序列保存为GIF文件
    拷贝剪贴板图像到窗体
    显示 png 图片
    将图片以字符串方式保存
    复制图片的一部分
    反转字符串
  • 原文地址:https://www.cnblogs.com/expedition/p/10852717.html
Copyright © 2011-2022 走看看