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知识库 -> java字符串分割方法 -> 正文阅读

[Java知识库]java字符串分割方法

java 分割字符串split()方法

实现功能
编写一个将字符串分段的类,传入:需分段的字符串 与 字符个数(以此个数进行分段),输出:按指定字符个数进行分段后的若干字符串(汉字算单个字符)。

功能实现要求分析

  • 字符串传入
  • 字符串分段
  • 字符串输出

实现思路

Java是一个面向对象设计类语言,自身提供了很多方法帮助我们实现想要的功能。
那么如何实现字符串传入功能?
我们需要了解一个Java类----Scanner类,这是一个用于扫描输入文本的新的实用程序。自Java 5版本添加了java.util.Scanner类,它是以前的StringTokenizer和Matcher类之间的某种结合。借助于Scanner,可以针对任何要处理的文本内容编写自定义的语法分析器。
Scanner

使用Scanner类需导包 import java.util.Scanner;

上图显示了Scanner的部分使用格式,sc.next后加数据基本类型。

Scanner s = new Scanner(System.in);
        String n = s.next();

这是传入字符串的实现代码。

字符串分割

对字符串进行操作,自然第一个会想到String类有没有相应的方法来实现分割操作,了解过API或者对Java有了解过的首先会想到String类下的split()方法能够实现这个功能。下面来看看split()方法的使用格式。

        String []a=se.split(",");
        String []b=se.split(",",5);

1.se.split(String sign);
2.se.split(String sign,int limit);

第一种是以逗号作为标记分割,也就是sign 为自己指定的分割符,sign可以是任意字符串。
第二种是在第一种的基础上对分割的字符串数量进行限制。

显而易见,split()方法有些局限,对于原来字符串的内容有要求。
如:

 String p = "石家庄-武汉-哈尔滨";
        String []g = p.split("-");
        for(String y : g)
            System.out.println(y);

输出结果

在这段程序中,分割符为“-”,输出结果也确实达到预期,但也不难发现利用split()分割字符串需要内容带分隔符

所以我们利用这一特点,不难想到可以先对字符串按间距添加分隔符,然后再使用split()方法来实现分割功能。
理论上使用一个for循环就能实现,但是字符串是常量,一旦创建,其内容和长度是不可以改变的。所以在这里我们要用到String Buffer或者String Builder类,这两个类提供了修改功能,类似一个容器。
实现代码如下:

 int m=0;
        for(int i=0;i+m<str.length();i++){
            if(i%l==0) {
                str.insert(i + m, ",");
                m++;
            }
        }

代码中l是分割的长度,m是添加分隔符后加1的标记

在这里插入图片描述
上图清晰地解释了m的作用,实际上就是更新了下一位分割位置,因为在添加分隔符时长度也在增加(更新)。

使用split()方法
对原字符串完成分隔符插入后,新字符串已经带有分隔符并且是在预想的位置上,所以理论上我们就可以使用split()方法完成分割字符串。
代码如下:

 String se= str.toString();
        String []a=se.split(",");

返回成字符串se,将分割后结果存储到字符串数组a[]中,方便输出

输出分割结果
代码如下:

 for(String j:a)
            System.out.println(j);

遍历a[],并输出

完整代码

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        StringBuilder str = new StringBuilder();
        Scanner s = new Scanner(System.in);
        String n = s.next();
        str.append(n);
        Scanner x = new Scanner(System.in);
        int l = x.nextInt();
        int m=0;
        for(int i=0;i+m<str.length();i++){
            if(i%l==0) {
                str.insert(i + m, ",");
                m++;
            }
        }
        String se= str.toString();
        String []a=se.split(",");
        for(String j:a)
            System.out.println(j);
    }
}

运行结果
在这里插入图片描述
在这里插入图片描述

结语
制作不易,觉得本文有帮助的支持一下!如有其他问题,可直接私信。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章           查看所有文章
加:2021-11-19 17:30:07  更:2021-11-19 17:32:30 
 
开发: 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年11日历 -2024/11/24 3:15:31-

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