IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 一起重新开始学大数据-java篇-DAY11-String和StringBuilder -> 正文阅读

[大数据]一起重新开始学大数据-java篇-DAY11-String和StringBuilder

-DAY11-String和StringBuilder

???该章节一些操作对于后面学习大数据有很大作用,hadoop中mapreduce经常使用这些操作
在这里插入图片描述

?String概述

①String在java.lang包下,所以使用的时候不需要导包

②String类表示字符串,Java中所有的字符串文字,都是String类的实例
就是说,Java程序中所有的双引号字符串都是String类的对象

注意:
String是特殊的引用类型,常做基本类型来用
String不可变,他们的值在创建后不能被更改
String的值不可变,但是可以被共享
String相当于字符数组(char[]),但是底层原理是字节数组(byte[])

?构造

public String() 创建一个空白的字符串对象,不含有任何内容
public String(char[] c) 根据字符数组的内容,创建字符串对象 public String(byte[] b) 根据字节数组的内容,创建字符串对象
public String(char[] c,int offset,int length) 根据char类型的数据,从offset开始,获取length个元素,创建字符串对象
String s=“abc” 直接赋值的方式创建对象
offset:偏移量,下标

?字符串的比较".equals"

使用==作比较
	基本数据类型,比较的是值是否相同
	引用数据类型,比较的是地址是否相同
字符串是一个对象,想要比较值是否相同,通过方法来实现,方法为:equals();

使用方式:(之前用过很多次)
String对象1.equals(String对象2)
范例:
s.equals(s1);

注意:
String做基本数据类型来用时:
String不可变,他们的值在创建后不能被更改
String的值不可变,但是可以被共享
图解释一波:

在这里插入图片描述

?反转:for循环倒过来遍历

在这里插入图片描述

package day11;
//反转,通过for循环
public class StringReverse {
    public static void main(String[] args) {
        String str="ABCDEFG";

        for (int i =str.length()-1; i>=0; i--) {
            System.out.print(str.charAt(i));

        }
    }
}

结果:
在这里插入图片描述

?切分:split(String regex)

在这里插入图片描述

package day11;
//切分split
public class String_split {
    public static void main(String[] args) {
        String str="断肠人在天涯,古道西风瘦马,小桥流水人家,枯藤老树昏鸦,";
        String[] split = str.split(",");

        for (int i =0; i <split.length ; i++) {
            System.out.println(split[i]);

        }
    }
}

结果:
在这里插入图片描述

?替换:replace(old,new); 产生一个新的字符串,不会再原有的字符串上发生修改

在这里插入图片描述

package day11;
//替换Replace
public class StringReplace {
    public static void main(String[] args) {
        String str="123abc789";
        String str1 = str.replace("abc", "456");
        //替换不会将原本的字符串数组修改,而是创建一个新的字符串数组
        System.out.println(str);//原来的,并没有替换
        System.out.println(str1);//新的字符串数组是替换过的
    }
}

结果:
在这里插入图片描述

?判断后缀:endsWith(String suffix)

在这里插入图片描述

package day11;
//endWith,,判断后缀(判断前缀StartWith)
public class StringendWith {
    public static void main(String[] args) {
            String[] str={"abc.txt","123.java","4399.java","520.exe"};
        for (int i = 0; i <str.length ; i++) {
            boolean k=str[i].endsWith(".java");
            System.out.println(k);
        }
    }
}

结果:
在这里插入图片描述

?转义符:" \ "

在这里插入图片描述

举例子:

package day11;
//转义符,,“\”
public class ZYF {
    public static void main(String[] args) {
        System.out.println("543\n543");//提示:\n是换行的意思
        System.out.println("543\\n543");//多加了一个斜杠直接把换行"\"转换成字符串输出
    }
}

结果:
在这里插入图片描述

作用:
修改原有字母或字符的含义
注意:

①同一个字母或符号 在不同的时候含义可能不一样
②只能更改转义符后面第一位字母或符号的含义


?StringBuilder

为什么使用?
在这里插入图片描述

①字符串的拼接,每次拼接都会创建一个新的String对象,即耗时又浪费空间,这种操作不可避免,我们可以通过StringBuilder类解决这个问题
②String中一些常见的操作,StringBuilder把这些操作封装成了方法,可以直接调用,不需要再手动书写代码进行实现。

构造:
public StirngBuilder():创建空白的StringBuilder 默认长度为16(new char[16])
public StringBuilder(String str):以str创建StirngBuilder,长度为str.length+16

操作:

(这些追加,反转,插入,删除都是在数组的时候学习的,只不过在这StringBuilder把它们封装)

方法名说明
public StringBuilder append(任意类型)追加数据并返回对象本身会在原本的数据上进行修改,不需要重新创建并接收
public StringBuilder reverse()返回相反的字符序列
public StringBuilder insert(int offset,任意数据)在指定位置上插入数据
public StringBuilder delete(int start, int end)删除一部分子字符串,从start开始到end结束
public StringBuilder deleteCharAt(int index)删除指定下标上的数据

?①StringBuilder append(任意类型)

package day11;

public class StringBuilderAppend {
    public static void main(String[] args) {
        StringBuilder str1 = new StringBuilder("123456");
        str1.append("ABCDEF");//追加这些数据给str1
        System.out.println(str1);
    }
}

结果:
在这里插入图片描述

?②StringBuilder reverse()

package day11;
//StringBuilderReverse反转
public class StringBuilder1 {
    public static void main(String[] args) {
        String str="123456";
        StringBuilder str1 = new StringBuilder(str);
        str1.reverse();//反转
        str1.toString();
        System.out.println(str1);
    }
}

结果:
在这里插入图片描述

?③StringBuilder insert(int offset,任意数据)

package day11;
//StirngBuilderInsert插入
public class StringbuilderInsert {
    public static void main(String[] args) {
        StringBuilder str = new StringBuilder("1231321321");
        str.insert(10,"A");//插入第十个位置,插入A
        System.out.println(str);
    }
}

结果:
在这里插入图片描述

?④StringBuilderDelete(int start, int end)

package day11;
//StringBuilderDelete删除部分字符串
public class StringBuilderDelete {
    public static void main(String[] args) {
        StringBuilder str = new StringBuilder("123456");
        str.delete(3,6);//删除部分字符串3-6位置
        System.out.println(str);
    }
}

结果:
在这里插入图片描述

?⑤public StringBuilder deleteCharAt(int index)

package day11;
//public StringBuilder deleteCharAt(int index)
public class StringBuildDeleteCharAt {
    public static void main(String[] args) {
        StringBuilder str = new StringBuilder("12312A123");
        System.out.println(str);//删除之前
        str.deleteCharAt(5);
        System.out.println(str);//删除之后
    }
}

结果:(上面为删除之前,下面为删除之后,精准删除)
在这里插入图片描述

?StringBuilder和String的相互转换

1.StringBuilder转为String

格式:

public String toString()

2.String转为StringBuilder
格式:

StringBuilder XX=new StringBuilder(String str)

?问题:

*String 和StringBuilder使用new 构造();创建对象,结果为什么不是个地址值
原因:java会直接查找里面的内容,没有内容就是空,有就等于内容
这个是底层方法java自己实现通过地址值,查找地址值空间脸面的内容
(具体原因下下章讲解)

一、选择题

  1. 使用权限修饰符( )修饰的类的成员变量和成员方法,可以被当前包中所有类访问,也可以被它的子类(同一个包以及不同包中的子类)访问。(选择一项)

    A public
    B. protected
    C. 默认
    D. private

  2. 给出如下代码,如何使成员变量m被方法fun()直接访问( )。(选择一项)
    class Test {
    private int m;
    public static void fun() {
    }
    }

    A 将private int m 改为protected int m
    B. 将private int m 改为public int m
    C. 将private int m 改为static int m
    D. 将private int m 改为int m

二、判断题
1.使用public修饰的成员属性和方法可以被当前项目中所有包的所有类访问。( )
2.类的方法通常设为public,而类的实例变量一般也设为public。( )
3.与未加访问控制符的缺省情况相比,public和protected修饰符扩大了类及其属性和方法的被访问范围,private修饰符则缩小了这种范围。( )
4.访问权限是private的变量,只能在本类和与本类同一个包中的其他类使用。( )

三、简答题
1.private、默认、protected、public四个权限修饰符的作用

(答案下一章节查看)
|
|
|
|

上一章节-java篇-DAY10-面向对象

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-07 11:46:23  更:2021-07-07 11:47:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/5 0:16:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码