学习大数据的第17天(继续java的内容)——Java常用类之(String、StringBuffer、StringBuilder、Arrays、Date、Math)

学习大数据的第17天(继续java的内容)——Java常用类之(String、StringBuffer、StringBuilder、Arrays、Date、Math),第1张

学习大数据的第17天(继续java的内容)——Java常用类之(String、StringBuffer、StringBuilder、Arrays、Date、Math) 学习大数据的第17天(继续java的内容)——Java常用类之(String、StringBuffer、StringBuilder、Arrays、Date、Math) 复习String

String 的一些例题


import java.util.Scanner;

public class StringTest1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = "";
        char[] chars = {'h', 'e', 'l', 'l', 'o'};
        for (int i = 0; i < chars.length; i++) {
            if (i == 0) {
                s = s + "[" + chars[i] + ",";
            } else if (i == chars.length - 1) {
                s = s + chars[i] + "]";
            } else {
                s = s + chars[i] +",";
            }

        }
        System.out.println(s);
    }
}

import java.util.Scanner;

public class StringTest2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        String str = sc.next();
        String str1 = "";
        char[] chars = str.toCharArray();
        for (int i = chars.length - 1; i >= 0; i--) {
            str1 = str1 + chars[i];
        }
        System.out.println("反转过后的字符串:" + str1);

    }
}
public class StringTest3 {
    public static void main(String[] args) {

        String bigstring = "woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun";

        String minstring = "java";

        int count = 0;

        int index = bigstring.indexOf(minstring);

        if (index == -1) {
            System.out.println("大串字符串中没有想要的字符串");
        } else {
            while (index != -1) {
                count++;
                int startIndex = index + minstring.length();
                bigstring = bigstring.substring(startIndex);
                index = bigstring.indexOf(minstring);
                System.out.println("截取的子字符串:" + bigstring);
            }
        }
        System.out.println("小字符串出现了:" + count);
    }
}

在学习例题的过程中发现关于字符串的各种用法和提高解决字符串数据的能力,记住String一些实用的方法,忘了的话,往前翻翻奥

StringBuffer

1、线程安全的
不安全,就是存在同步 *** 作同一数据的行为,效率高。
安全的时候,没有同步 *** 作,效率低。
在实际开发中,效率和安全着两个问题一直都是很难平衡的问题。
生活中的例子:
线程安全的例子:银行的一些业务,电影院卖票,医院取号。
线程不安全的例子:视频会员,博客评论
2、线程安全的,StringBuffer是一个可变序列
3、StringBuffer又称之为字符串缓冲区,就把它当作一个字符串去 *** 作,只不过它与String相比是可以修改内容的
4、在任何时间点,它包含着一些特定的字符序列,但是可以通过某些方法修改这字符序列的长度和内容
简单记忆:StringBuffer是一个线程安全的可变序列。
面试题:StringBuffer与String区别:
1、StringBuffer的长度和内容都可以发生改变,String却不行
2、String每创建一个新的字符串都会开辟一个新的常量池区域
StringBuffer会提前给出容量,可以进行字符串的拼接,而不会重新弄开辟空间
StringBuffer(String str) 构造一个初始化为指定字符串内容的字符串缓冲区。
StringBuffer() 构造一个没有字符的字符串缓冲区,初始容量为16个字符。
public StringBuffer(int capacity) 构造初始容量自定的容器StringBuffer

构造方法的使用

//定义一个空的字符串且容量为16
        StringBuffer sb1 = new StringBuffer("helloasdasdasdasdasdasdsadasdasd");
        //当StringBuffer中有字符串的时候,容量为字符长度  +  默认的容量16
        System.out.println(sb1.capacity());
        //容器中字符串的长度
        System.out.println(sb1.length());

StringBuffer的功能方法测试

添加功能
public StringBuffer append(String str)
public StringBuffer insert(int offset,String str)
删除功能
public StringBuffer deleteCharAt(int index)
public StringBuffer delete(int start,int end)
替换功能
public StringBuffer replace(int start,int end,String str)
反转功能 public StringBuffer reverse()
截取功能
public String substring(int start)
public String substring(int start,int end)
截取功能和前面几个功能的不同
返回值类型是String类型,本身没有发生改变

public class StringBufferDemo2 {
    public static void main(String[] args) {
        StringBuffer sb1 = new StringBuffer("hello");
        //public StringBuffer append(String str)  在字符串后面添加字符
        sb1.append("world");
        System.out.println(sb1);
        System.out.println("=========================================");
        //public StringBuffer insert(int offset,String str)     在字符串的起始位置offset  插入str字符串
        sb1.insert(0, "world");
        System.out.println(sb1);
        System.out.println("=========================================");
        //public StringBuffer deleteCharAt(int index)    删除指定位置的字符
        sb1.deleteCharAt(1);
        System.out.println(sb1);
        System.out.println("=========================================");
        //public StringBuffer delete(int start,int end)    删除指定的字符串
        sb1.delete(0, 4);
        System.out.println(sb1);
        System.out.println("=========================================");
        // public StringBuffer replace(int start,int end,String str)   将目标字符串替换指定位置的字符串
        String s1 = "java";
        sb1.replace(0, 5, s1);
        System.out.println(sb1);
        System.out.println("=========================================");
        //public StringBuffer reverse()     实现字符串反转  返回值为StringBuffer
        StringBuffer sb2 = sb1.reverse();
        System.out.println(sb2);
        System.out.println("=========================================");
        //public String substring(int start)   截取从start位置开始到最后的字符串
        String s2 = sb2.substring(0);
        System.out.println(s2);
        System.out.println("=========================================");
        //public String substring(int start,int end)    截取从start 到 end位置的字符串(包括开头位置,不包括结束位置)
        String s3 = sb2.substring(2,5);
        System.out.println(s3);
        //截取功能和前面几个功能的不同
        //返回值类型是String类型,本身没有发生改变
    }
}

String和StringBuffer的转换

public class StringBufferDemo3 {
    public static void main(String[] args) {

        //String和StringBuffer的相互转换
        System.out.println("===================================");
        //String ——> StringBuffer
        //1、方法一  通过构造方法来转换
        String s1 = "hello";
        StringBuffer sb1 = new StringBuffer(s1);
        System.out.println(sb1);
        //2、方法二  通过append的方法转换
        String s2 = "world";
        StringBuffer sb2 = new StringBuffer();
        sb2.append(s2);
        System.out.println(sb2);

        System.out.println("===================================");
        //StringBuffer  ——>  String
        //方法一  toString()
        StringBuffer sb3 = new StringBuffer("hello");
        String s3 = sb3.toString();
        System.out.println(s3);
        //方法二  subString切割字符串,这里可以用subString(int start)
        StringBuffer sb4 = new StringBuffer("world");
        String s4 = sb4.substring(0);
        System.out.println(s4);

        //方法三  String(StringBuffer sb)     使用String的构造方法
        String s5 = new String(sb4);
        System.out.println(s5);
    }
}

面试题

public class StringBufferDemo4 {
    public static void main(String[] args) {

        //创建一个StringBuffer和StringBuild对象
        StringBuffer stringBuffer = new StringBuffer();

        StringBuilder stringBuilder = new StringBuilder();

        String s1 = "hello";
        String s2 = "world";
        change(s1, s2);
        System.out.println("查看原先的值是否改变   s1: " + s1 + "    s2: " + s2);

        //这个案例说明在StringBuffer和StringBuilder中改变值,容器内部会发生。
        System.out.println("========================================");
        stringBuffer.append("hello");
        stringBuilder.append("world");
        System.out.println("StringBuffer:" + stringBuffer + "  StringBuilder:" + stringBuilder);
        change(stringBuffer, stringBuilder);
        System.out.println("StringBuffer:" + stringBuffer + "  StringBuilder:" + stringBuilder);
    }

    //查看在方法中改变字符串的值
    public static void change(String s1, String s2) {
        s1 = s2;
        s2 = s1 + s2;
        System.out.println("s1: " + s1 + "    s2: " + s2);
    }

    //查看用StringBuffer作为参数
    public static void change(StringBuffer stringBuffer, StringBuilder stringBuilder) {
        stringBuffer.append("java");
        stringBuilder.append("wonderfully");
        System.out.println("StringBuffer:" + stringBuffer + "  StringBuilder:" + stringBuilder);
    }
}
StringBuilder和StringBuffer的方法差不多但是了解String、StringBuffer、StringBuilder三者的区别 Arrays 数组类
public class ArraysDemo {
    public static void main(String[] args) {
        //定义一个数组
        int[] arr = {21, 32, 44, 1, 4, 89, 16};

        //public static String toString(int[] a)
        //将数组转换成一个字符串
//        System.out.println(arr);
        String s = Arrays.toString(arr);
        System.out.println(s);

        System.out.println("=================================");
        //public static void sort(int[] a)
        Arrays.sort(arr);
        System.out.println("排序后的数组为:" + Arrays.toString(arr));

        System.out.println("=================================");
        //public static int binarySearch(int[] a,int key)
        //[1, 4, 16, 21, 32, 44, 89]
        //二分查找的前提是数组本身是排过序的
        System.out.println("二分查找32:" + Arrays.binarySearch(arr, 32));
        System.out.println("二分查找32:" + Arrays.binarySearch(arr, 100)); // -8



    }
}
Date 日期类
public class DateDemo {
    public static void main(String[] args) {
        Date date = new Date();
        System.out.println(date); //Fri Jan 21 16:47:23 CST 2022 系统时间
        //由于我们经常看到时间不是这样的,应该是年,月,日,时分秒
        //日期的格式化
        //SimpleDateFormat(String pattern)
        //使用给定模式 SimpleDateFormat并使用默认的 FORMAT语言环境的默认日期格式符号。

        
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd EEE a hh:mm:ss ");
        String s = simpleDateFormat.format(date);
        System.out.println(s);

    }
}
Math类
public class MathDemo {
    public static void main(String[] args) {
        //public static int abs(int a) 绝对值
        int num1 = Math.abs(-10);
        System.out.println(num1);
        //public static double ceil(double a)
        double num2 = Math.ceil(12.04);
        System.out.println(num2); 
        //floor
        double num3 = Math.floor(12.84);
        System.out.println(num3);
        //public static double sqrt(double a)
        //public static double sqrt(double a)返回double值正确舍入的正平方根。
        double num4 = Math.sqrt(3);
        System.out.println(num4);


    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5708875.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存