Java String 类练习

2023-11-11


前言

字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串


一、一些常用的String方法

1.字符串长度
代码如下(示例):

public class sda {
    public static void main(String[] args) {
        String f="suyize";
        System.out.println(f.length());
    }
}

2.替换字符串
代码如下(示例):

public class sda {
    public static void main(String[] args) {
        String p1="suyixx";
        String p2="ze";
        System.out.println(p1.replace("xx",p2));
    }
}

3.根据给定正则表达式的匹配拆分此字符串
代码如下(示例):

public class sda {
    public static void main(String[] args) {
        String q1="sb,sb,sb,sb,sb";
        String[] oo=q1.split(",");
        for(String p:oo){
            System.out.println(p);
        }
    }
}

4.连接字符串
代码如下(示例):

public class sda {
    public static void main(String[] args) {
        String s1="su";
        String s2="yize";
        String s3=s1.concat(s2);
        System.out.println(s1+s2);
        }
    }

5.截取字符串
代码如下(示例):

public class sda {
    public static void main(String[] args) {
        String k1="sdadwaeadsrads";
        String k2=k1.substring(0,6);
        System.out.println(k2);
        }
    }

二、StringBuffer和StringBuilder

1.StringBuffer

在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer。
代码如下(示例):

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

以上实例编译运行结果如下:

在这里插入图片描述

2.StringBuilder

StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问);由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。
代码如下(示例):

public class sda {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder(10);
        sb.append("Runoob.");
        System.out.println(sb);
        sb.append("!");
        System.out.println(sb);
        sb.insert(7, "Java");
        System.out.println(sb);
        sb.delete(5,7);
        System.out.println(sb);
       }
 }

StringBuilder sb = new StringBuilder(10)
在这里插入图片描述
sb.append(“Runoob.”)
在这里插入图片描述
sb.append(“!”)
在这里插入图片描述
sb.insert(7, “Java”)
在这里插入图片描述
sb.delete(5,7)

在这里插入图片描述

一个小项目(学生信息查询系统)【简易版】

1.菜单(menu.java)

package StringDemo;

public class menu {

    public static void Menu(){
        System.out.println("****************************************************");
        System.out.println("                   1.信息录入                         ");
        System.out.println("                   2.信息修改                         ");
        System.out.println("                   3.信息删除                         ");
        System.out.println("                   0.退出                            ");
        System.out.println("****************************************************");

    }
}

2.学生信息种类(student.java)

package StringDemo;

public class Student {
    private String name;
    private  String sex;
    private  String age;
    private String phone;
    private String garde;

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", age='" + age + '\'' +
                ", phone='" + phone + '\'' +
                ", garde='" + garde + '\'' +
                '}';
    }

    public String getName() {
        return name;
    }

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

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getGarde() {
        return garde;
    }

    public void setGarde(String garde) {
        this.garde = garde;
    }
}

3.信息录入(app.java)

 public static String addinfor(String info){
         String[] arr = info.split(";");
         Student laoliu=new Student();
         laoliu.setName(arr[0]);
         laoliu.setSex(arr[1]);
         laoliu.setAge(arr[2]);
         laoliu.setPhone(arr[3]);
         laoliu.setGarde(arr[4]);
        System.out.println(laoliu.toString());
       return laoliu.toString();
    }

4.信息修改(App.java)

 public static int updateinfor(StringBuffer sb,String sjj){
     String  str=sb.toString();
     String[] pl=str.split(",");
     int end=0;
     end=pl[0].length()+pl[1].length()+pl[2].length()+2;
     int start=end-3;
     sb.delete(start,end-1);
        System.out.println(sb);
     sb.insert(start,sjj);
        System.out.println(sb);
        return 0;
    }

5.信息删除(App.java)

 public static int delinfor(StringBuffer stu){
        String  str=stu.toString();
        String[] pl=str.split(",");
        int end=0;
        end=pl[0].length()+pl[1].length()+pl[2].length()+2+pl[3].length()+pl[4].length()+4;
        int start=0;
        stu.delete(start,end);
        return 0;
    }

6.主函数(App.java)

public class App {

    public static void main(String[] args) {
        boolean pp=true;
        String Y="T";
        StringBuffer stu=new StringBuffer();
        while(pp){

            menu.Menu();
            System.out.println("请输入操作:");
            Scanner scanner=new Scanner(System.in);
            int a=scanner.nextInt();

            switch(a){
                case 1:
                    System.out.println("请输入学生信息:");
                    String s=scanner.next();
                  stu.append( addinfor(s));
                    break;
                case 2:
                    System.out.println("请输入修改的信息:");
                    String s0=scanner.next();
                    updateinfor(stu,s0);
                    break;
                case 3:
                    System.out.println("您确定要删除信息吗?T/F");
                    String x=scanner.next();
                    if(0==Y.compareTo(x)){
                        delinfor(stu);
                        System.out.println("信息删除成功");
                    }else{
                        System.out.println(stu);
                    }
                    break;
                case 0:
                                pp=false;
                    break;
                default:
                    System.out.println("输入错误");
            }
        }
    }

7.App.java整合

package StringDemo;

import java.util.Scanner;

public class App {

    public static void main(String[] args) {
        boolean pp=true;
        String Y="T";
        StringBuffer stu=new StringBuffer();
        while(pp){

            menu.Menu();
            System.out.println("请输入操作:");
            Scanner scanner=new Scanner(System.in);
            int a=scanner.nextInt();

            switch(a){
                case 1:
                    System.out.println("请输入学生信息:");
                    String s=scanner.next();
                  stu.append( addinfor(s));
                    break;
                case 2:
                    System.out.println("请输入修改的信息:");
                    String s0=scanner.next();
                    updateinfor(stu,s0);
                    break;
                case 3:
                    System.out.println("您确定要删除信息吗?T/F");
                    String x=scanner.next();
                    if(0==Y.compareTo(x)){
                        delinfor(stu);
                        System.out.println("信息删除成功");
                    }else{
                        System.out.println(stu);
                    }
                    break;
                case 0:
                                pp=false;
                    break;
                default:
                    System.out.println("输入错误");
            }
        }
    }



    //信息添加
    public static String addinfor(String info){
         String[] arr = info.split(";");
         Student laoliu=new Student();
         laoliu.setName(arr[0]);
         laoliu.setSex(arr[1]);
         laoliu.setAge(arr[2]);
         laoliu.setPhone(arr[3]);
         laoliu.setGarde(arr[4]);
        System.out.println(laoliu.toString());
       return laoliu.toString();
    }


    //信息修改
    public static int updateinfor(StringBuffer sb,String sjj){
     String  str=sb.toString();
     String[] pl=str.split(",");
     int end=0;
     end=pl[0].length()+pl[1].length()+pl[2].length()+2;
     int start=end-3;
     sb.delete(start,end-1);
        System.out.println(sb);
     sb.insert(start,sjj);
        System.out.println(sb);
        return 0;
    }


    //信息删除
    public static int delinfor(StringBuffer stu){
        String  str=stu.toString();
        String[] pl=str.split(",");
        int end=0;
        end=pl[0].length()+pl[1].length()+pl[2].length()+2+pl[3].length()+pl[4].length()+4;
        int start=0;
        stu.delete(start,end);
        return 0;
    }

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java String 类练习 的相关文章

  • 将 CSV 文件读入 Java 作为数据库表

    我发现了很多关于使用 Java 读取 CSV 的帖子 并且他们所指向的 API 在读取 CSV 文件时都采用了面向行的方法 就像 当你得到一行时 获取每一列的值 我希望有一个更高级别的 API 比如在 Perl 中 DBI 允许您在 CSV
  • Hibernate 自定义架构创建

  • RSA 加密-解密:BadPaddingException:数据必须以零开头

    对于一个被问了很多次的问题 我很抱歉向您询问您的技能 我有一个关于 RSA 加密的问题 我已经检查过有关此问题的其他主题 但没有找到任何有用的答案 我希望你能帮助我 我想读取一个文件 加密其内容 然后解密它并将这些解密的字节放入一个新文件中
  • 可以向 @ManyToMany Hibernate 额外表添加额外字段吗?

    我有这两类 表 Entity Table name course public class Course Id Column name courseid private String courseId Column name coursen
  • 文件保存在文件系统中 VS 保存在数据库中

    我正在设计一个 servlet 或 Struts2 中的操作 用于文件 图像 文档等 下载 但我想知道哪种更好的方法可以将文件保留在文件系统和数据库中 只需保留文件的路径或将文件保留在数据库中 如 BLOB 我知道当我查询数据库时 哪里的
  • 将 emoji 替换为适当的 java 代码

    我正在开发一个简单的java程序 它可以接受这样的字符串 停止 你违反了 法律 但是现在 你 并将每个表情符号替换为适当的 java 字符 我不知道该怎么称呼他们 这是一个例子 汽车表情符号 将替换为 uD83D uDE97 这允许我有一个
  • Java 泛型和数字类型

    我想创建一个通用方法来有效地执行此操作 class MyClass static
  • 比较和删除列表和数组java中不存在的元素

    我有一个String数组和一List
  • Java 中意外的负数

    import java util public class Prac9FibonacciNumbers public static void main String args int x new int 100 x 0 1 x 1 1 fo
  • 使用antlr4获取预处理器行并解析C代码

    我正在使用 Antlr4 来解析 C 代码 并使用以下语法来解析 链接到 C g4 https github com antlr grammars v4 blob master c C g4 上面的语法默认不提供任何解析规则来获取预处理器语
  • 日志记录在 Android 设备上实际上有什么作用?

    我一直在 Android 示例中看到这样的代码 try catch Exception e Log e Error e getMessage 什么是Log e实际上在物理设备上做什么 它进入系统日志 开发人员可以通过 SDK 工具访问该日志
  • 获取证书链

    我正在 Java 中使用 X509 证书 给定一个证书 是否可以在签名层次结构中找到所有其他证书 直到找到根证书 我有一个证书文件 带有 cer扩展名 我想提取父签名证书 我想继续查找该证书的父证书 直到获得最终的自签名根证书 我已经检查了
  • EclipseLink 2.7.0 和 JPA API 2.2.0 - 签名不匹配

    当运行由maven构建的具有以下依赖项的项目时
  • 如何在Webview中保存用户名和密码

    目前 我还在学习Android开发的过程中 所以如果我的这个问题对你来说不太容易理解 请原谅 我创建了一个 Android 应用程序 它使用 RecyclerView 显示一组列表 当用户单击列表中的每个名称时 它会将它们重定向到一组不同的
  • HashSet 与 LinkedHashSet

    它们之间有什么区别 我知道 LinkedHashSet 是 HashSet 的有序版本 维护一个跨所有元素的双向链接列表 使用此类代替 HashSet 当您关心迭代顺序时 当你迭代 HashSet 时 顺序是不可预测的 而 LinkedHa
  • WebSocketStompClient 将无法连接到 SockJS 端点

    我正在尝试新的 从版本 4 2 开始 java STOMP 客户端支持 我的出发点是入门指南 使用 WebSocket 构建交互式 Web 应用程序 http spring io guides gs messaging stomp webs
  • 在 Java 服务器中验证 Windows 用户

    我正在开发一个用 Java 编写的服务器和一个在同一网络上的 Windows 计算机上运行的客户端 用 Net 编写的桌面应用程序 我希望进行一些基本身份验证 以便服务器可以确定运行客户端的用户的用户名 而不需要用户在客户端中重新输入其 W
  • 如何确保超类的子类方法的线程安全?

    我参加了一次面试 并被要求为以下要求设计一个课程 假设我有一个 A 类 它可以有任意数量的子类 即子类 类 A 有一个名为 doSomething 的方法 该方法是同步的 要求是 A 的所有子类都是强制性的重写 doSomething me
  • 如何正确使用Google Calendar API Events.Insert命令?

    所以我一直使用REST方法来调用Google的API 我需要将事件插入到我拥有 ID 的特定日历中 这是我发送的 POST 请求 地址 https www googleapis com calendar v3 calendars https
  • 对 Java 协议缓冲区对象进行一些小更改

    我想在 Java 协议缓冲区对象树的深处进行一个小更改 我可以使用 getBuilder 方法来创建一个新对象 该新对象是旧对象的克隆并进行一些更改 当深入完成此操作时 代码会变得丑陋 Quux Builder quuxBuilder fo

随机推荐

  • MAPREDUCE的JOB提交流程

    在hadoop1 0版本以前我们的Mapreduce是被当作资源调度和计算框架来使用的 成为了hadoop运行生态圈的瓶颈 所以在hadoop2 0版本以上引入了yarn的概念 使Mapreduce完全成为分布式计算框架 而Yarn成为了分
  • jquery ajax url中有中文,后端乱码的解决方法.txt

    参考 https zhidao baidu com question 2057437468670456147 html url类似 http localhost 8080 floorsNodes 风管 json 方法 在jquery aja
  • HTML标签的分类

    HTML的标签 一 分类 1 排版标签 2 标题标签 3 段落标签 4 水平线标签 5 换行标签 6 文本格式标签 7 标签属性 8 图像标签 二 应用 1 排版标签 与css搭配使用 显示网页结构的标签 是网页布局中的常用标签 2 标题标
  • 验证码拦不住机器人了!谷歌AI已能精准识别模糊文字,GPT-4则装瞎求人帮忙

    丰色 发自 凹非寺量子位 公众号 QbitAI 最烦登网站时各种奇奇怪怪 甚至变态 的验证码了 现在 有一个好消息和一个坏消息 好消息就是 AI可以帮你代劳这件事了 不信你瞧 以下是三张识别难度依次递增的真实案例 而这些是一个名为 Pix2
  • 华退学博士王垠:离开是为了获得力量后再回来

    清华退学博士王垠 离开是为了获得力量后再回来 附万言退学书 只提供一种模具生产 标准化的人 而忽视 教育的多样性 的中国教育界是可悲的 异端王垠用现身说法打破了教育界 沉默的螺旋 文 张洋 王垠出名了 这是迟早的事 但这一次 他的出名更多是
  • MySQL LOAD DATA INFILE - 加载没有主键的文件实战

    首先告诉大家关于 MySQL LOAD DATA INFILE 加载没有主键的文件 是可以操作的 接下来就来实战一把 表imagecode结构可以看到有3列 其中id是自增列 drop table imagecode create tabl
  • ztree异步加载

    1 配置好参数 var setting ztreeSetting view showIcon false 前面文件夹显示状态 data key name MC 数据结构的属性由name改成MC async enable true url u
  • 【NVM】node多个版本管理工具安装步骤以及使用

    1 什么是nvm nvm是一个管理nodejs版本的工具 在实际的开发中 有些项目的开发依赖需要不同版本的nodejs运行环境 此时我们就需要使用nvm来管理nodejs版本 2 安装步骤 2 1 下载nvm https github co
  • linux文件赋予用户权限,Linux 给用户赋予操作权限

    chown Rkeesail keesail local赋予local目录给keesailchmod760 local赋予local目录读写权这个目chmod777文件夹名称 可以把文件夹设置成所有用户都有完全的权限 不过更改系统文件夹下的
  • WSL2的安装详细过程(转载)

    这部分记录了如何安装wsl 以及如何升级到wsl2的心酸历程 文章目录 版本要求 升级windows WSL的安装 升级到WSL2 安装linux分发版 排查安装问题 相关链接 记录所踩的坑 版本要求 安装wsl2对系统版本有硬性的要求 运
  • mysql的行转列和列转行

    一 行转列 即将原本同一列下多行的不同内容作为多个字段 输出对应内容 建表语句 DROP TABLE IF EXISTS tb score CREATE TABLE tb score id INT 11 NOT NULL auto incr
  • 语义分割常用数据集整理

    语义分割的数据集分为三类 2D图片 2 5D图片 RGB D 3D图片 每一个类别的数据集都提供了像素级的标签 可以用来评估模型性能 同时其中一部分工作用到了数据增强来增加标签样本的数量 一 2D数据 1 PASCAL Visual Obj
  • 更换 CentOS 7 的下载源为阿里云

    1 备份 mv etc yum repos d CentOS Base repo etc yum repos d CentOS Base repo backup 2 下载新的CentOS Base repo 到 etc yum repos
  • vue3 hooks的简单使用 组合式函数

    想当于vue2的mixins 我们可以使用hooks代替mixins 官方文档 组合式函数 hooks 特点 vue3 中的 hooks 函数相当于 vue2 里面的 mixin 混入 不同在于 hooks 是函数 vue3 中的 hook
  • 离线脱机局域网环境安装visual studio2019企业版

    我这个文章借鉴了网友的一些方法 自己改编的用于记录以后方便自己用 亲测2022社区版可能因为我电脑的win10系统不完善的原因 无法 安装 最后试了2019企业版成功安装 1 在官网下载安装包 点击跳转 2 点开的网页 我英语不好 我翻译了
  • 终极篇 C++算法到安卓的移植——AS调用VS的so库

    目的 windows平台下的c 算法 需要移植到安卓系统上 平时用惯了Visual Studio 再在其他软件上重新写算法 调试算法 实在头疼 所以我用VS的c 移动开发功能创建动态共享库 将算法内容放入 并实现JNI和JAVA接口部分 最
  • libvirt介绍和使用

    libvirt介绍和使用 导读 why what libvirt具体介绍 API 剖析 driver 剖析 如何使用libvirt why what 实现一朵可运行 可运维的云 需要完整的实现三层 VIM层 VNFM层 NFVO层 其中实现
  • C语言文件操作详解(解析各文件函数,如何应用文件函数)

    前言 我们为什么要在C语言中引进文件的概念呢 试想一个场景 我们写好了通讯录的源代码运行后录入了联系人的信息 但是每次的操作范围只局限在此次的执行程序中 执行程序一关 联系人的信息随着执行程序在内存中的消失而消失 因此 我们需要把联系人信息
  • 算法训练营day48

    文章目录 198 打家劫舍 思路分析 代码实现 思考总结 213 打家劫舍II 思路分析 代码实现 337 打家劫舍 III 树形DP 思路分析 代码实现 思考总结 198 打家劫舍 题目链接 你是一个专业的小偷 计划偷窃沿街的房屋 每间房
  • Java String 类练习

    文章目录 前言 一 一些常用的String方法 二 StringBuffer和StringBuilder 1 StringBuffer 2 StringBuilder 一个小项目 学生信息查询系统 简易版 前言 字符串广泛应用 在 Java