java字符串分割方法

java字符串分割方法java分割字符串split()方法实现功能编写一个将字符串分段的类,传入:需分段的字符串与字符个数(以此个数进行分段),输出:按指定字符个数进行分段后的若干字符串(汉字算单个字符)。功能实现要求分析字符串传入字符串分段字符串输出实现思路Java是一个面向对象设计类语言,自身提供了很多方法帮助我们实现想要的功能。那么如何实现字符串传入功能?我们需要了解一个Java类—-Scanner类,这是一个用于扫描输入文本的新的实用程序。自Java5版本添加了java.util.Sc

大家好,又见面了,我是你们的朋友全栈君。

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);
    }
}

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133417.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • BoundsChecker安装下载及使用教程攻略

    BoundsChecker安装下载地址:参见文章结尾附件1前言我在本文中详细介绍了测试工具NuMegaDevpartner(以下简称NuMega)的使用方法。NuMega是一个动态测试工具,主要应用于白盒测试。该工具的特点是学习简单、使用方便、功能有效。NuMega共有三个独立的子功能——BoundsChecker、TrueCoverage、TrueTime。BoundsChecker

    2022年4月6日
    47
  • 与运算或运算非运算异或运算是什么_俄称击退乌军进攻

    与运算或运算非运算异或运算是什么_俄称击退乌军进攻按位与运算符(&)参加运算的两个数据,按二进制位进行“与”运算。运算规则:0&0=0;  0&1=0;   1&0=0;    1&1=1;      即:两位同时为“1”,结果才为“1”,否则为0例如:3&5 即00000011&00000101=00000001  因此,3&5的值得1。 另,负数按补码形式参加按位与运算。“与运算”的特殊用途:(1

    2025年6月8日
    0
  • id门禁卡复制到手机_门禁卡复制到苹果手机

    id门禁卡复制到手机_门禁卡复制到苹果手机大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。门禁卡复制到苹果手机的步骤如下:1、首先读取卡的ID,并安装“NFCTagInfo”,打开手机的NFC设置,门禁卡贴到手机后盖NFC部分,“NFCTagInfo”读取校园卡ID。可以看到“我的卡”ID号码。2、其次修改手机NFC的ID。随即打开R.E.管理器,根目录etc,找到etc文件夹中的“libnfc-nxp.conf”…

    2022年5月1日
    170
  • 游戏建模:3D建模的入门学习方法及技巧

    选一个你感兴趣的模型利用你感兴趣的任何物品或形象的预制模型。选一个可以激发你想象,让你知道清楚知道自己的模型该是什么样子,该怎么动的模型。你可以根据自己的喜好和需要加强现有模型。预制模型可以让你在开始建模之前,体验模型的检查和操作。从简单模型入手从复杂3D模型入手,你可能会备受打击。选一个简单的结构,然后开始学习。你不仅想要学会3D建模的基本知识,还需要慢慢学习掌握不同的工具、技巧。瓶子一样的圆柱体是一个很好的入门模型。或者你可以用更简单的立方体来熟悉所有工具技巧的用法。复杂模型可能会.

    2022年4月3日
    146
  • 解决Tomcat启动后404的问题

    概述当我遇到这个问题的时候,我真是操**的崩溃了,你懂我意思吧,就是那种各种百度也找不到答案,然后有好多回答都是帮我解释什么叫”404”????Excuseme???????我用你解释吗???我觉的真挺逗的,还有一大堆说程序有问题的,就是这个说法啊不能排除,确实有的开发人员给运维的war包就是有问题的,不过在我这儿跟包没关系,纯粹就是自己的问题,所以运维人员如果查到网上说让你去怪开…

    2022年4月9日
    56
  • linux查看全部环境变量_centos7环境变量配置

    linux查看全部环境变量_centos7环境变量配置一、查看环境变量 $env二、查看PATH $echo$PATH三、修改PATH 在Linux里设置环境变量的方法(exportPATH)一般来说,配置交叉编译工具链的时候需要指定编译工具的路径,此时就需要设置环境变量。例如我的mips-linux-gcc编译器在“/opt/au1200_rm/build_tools/bin”目录下,build_tools就是

    2022年10月1日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号