【Java面向对象编程——清理网址中的垃圾字符】

  • 在实际开发中经常会使用字符串,由许多单个字符连接而成。字符串可包含任意字符,但这些字符必须包含在一对英文双引号之内。Java中定义了String和StringBuffer两个类来封装字符串,并提供了一系列操作字符串的方法。以字符串String常用操作方法为例说明。
  • 数据清洗是大数据领域不可缺少的环节,用来发现并纠正数据中可能存在的错误,针对数据审查过程中发现的错误值、缺失值、异常值、可疑数据,选用适当方法进行“清理”,使“脏”数据变为“干净”数据。数据清洗是进行数据分析的前提。在Java课程中,案例涉及数据清洗,这是与专业和应用结合的一种体现。
  • 网址清洗任务:网址中包含垃圾字符,可能是在网络传输过程中无意中添加的,也可能是为了安全考虑故意插入的。无论是什么原因引起的,现在都需要清除掉垃圾字符,得到有效的网址。
  • 比如: ht%$tp:%$$%##%/ / w%##%w%w. %%$$%##%16%$$3.c##om,包含的垃圾字符有空格%$#,需要清洗掉,变成规范的网址:http://www.163.com

(一)编程实现

  • net.huawei.p03.t05包里创建URLCleaning
    在这里插入图片描述

  • 思路:将网址字符串中的垃圾字符逐个替换掉,要用到String类的replace()

  • 查看JDK11的API文档:https://docs.oracle.com/en/java/javase/11/docs/api/index.html
    在这里插入图片描述

  • 搜索String类
    在这里插入图片描述

  • 找String类的replace()方法
    在这里插入图片描述

  • 尝试replace()
    在这里插入图片描述

  • 编写程序

public class URLCleaning {
    public static void main(String[] args) throws IOException {
        String url;
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        System.out.print("输入原始url: ");
        url = br.readLine();

        // 清洗网址的空格字符
        url = url.replace(" ", "");
        // 清洗网址中的$符号
        url = url.replace("$", "");
        // 清洗网址中的%符号
        url = url.replace("%", "");
        // 清洗网址中的#符号
        url = url.replace("#", "");

        System.out.println("清洗后的url: " + url);
    }
}
  • 运行程序,查看结果
    在这里插入图片描述

任务:由用户来指定垃圾字符

  • 修改程序
public class URLCleaning {
    public static void main(String[] args) throws IOException {
        String url;
        String strGarbage; // 垃圾字符串
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        System.out.print("输入原始url: ");
        url = br.readLine();
        System.out.print("输入垃圾字符串:");
        strGarbage = br.readLine();

        // 遍历垃圾字符串
        for (int i = 0; i < strGarbage.length(); i++) {
            // 逐个清洗垃圾字符串里的每个字符
            url = url.replace(String.valueOf(strGarbage.charAt(i)), "");
        }

        System.out.println("清洗后的url: " + url);
    }
}
  • 运行程序,查看结果
    在这里插入图片描述
    在这里插入图片描述

(二)知识点讲解

  • String类常见操作思维导图
    在这里插入图片描述

知识点:字符串拼接

(1)字符串直接用+拼接

  • 演示直接用+连接两个字符串
    在这里插入图片描述

  • 这样会有三个内存单元来存放字符串,浪费内存空间,建议采用StringBuffer(线程安全)或者StringBuilder(线程不安全)来实现字符串拼接。

(2)使用StringBuffer来拼接字符串

利用append()方法添加字符串,利用toString()得到缓冲区的字符串数据
在这里插入图片描述

(3)使用StringBuilder来拼接字符串

利用append()方法添加字符串,利用toString()得到缓冲区的字符串数据
在这里插入图片描述

(三)拓展练习

任务1、编程实现字符串大小写转换并倒序输出

例如:abThRx ⟹ \Longrightarrow⟹ XrHtBA

任务2、编写一个简单的字符串加密和解密程序

自定义加密规则,比如a→ \rightarrow→d, b→ \rightarrow→e, c→ \rightarrow→f…

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值