zoukankan      html  css  js  c++  java
  • Java中将字符串用空格分割成字符串数组的split方法

    官方文档链接:public String[] split(String regex)

    本文以空格作为分割串。

    CaseOne

    import java.util.Scanner;
    
    public class CaseOne {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		String oldstr = sc.nextLine();	// 需要处理的字符串
    		sc.close();
    
    		String cut = " ";	// 分割串,此处为一个空格
    
    		String[] newStr = oldstr.split(cut);	// 分割成数组
    
    		for (String string : newStr) {
    			System.out.println(string);	// 输出
    		}
    	}
    }
    
    Case 1.1:
    • 输入
       I   am   wowpH.   
    
    • 输出
    
    
    
    I
    
    
    am
    
    
    wowpH.
    
    1. 字符串首部的每个空格都转成了一个空串
    2. 中间的多个空格中,多余的每个空格都转成了一个空串。
    3. 末尾的多个空格全都去掉了。

    因此如果你已经知道需要处理的字符串首部没有空格,中间每个之间只有一个空格,那么用split()方法就比较方便。如Case 1.2所示:

    Case 1.2:
    • 输入
    I am wowpH.  
    
    • 输出
    I
    am
    wowpH.
    

    Case 1.2就能正常分割成字符串数组。缺点是不够灵活。无法处理多个空格的情况。

    那如果有多个空格怎么处理呢。请看下文:

    当字符串中空格的个数位置都不确定时,可以考虑将分割串cut改变一下。如下所示:

    CaseTwo

    import java.util.Scanner;
    
    public class CaseTwo {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		String oldStr = sc.nextLine();	// 需要处理的字符串
    		sc.close();
    		
    		String cut = "\s+";		// 分割串,此处为至少一个空格
    
    		String[] newStr = oldStr.split(cut);	// 分割成数组
    
    		for (String string : newStr) {
    			System.out.println(string);		// 输出
    		}
    	}
    }
    
    Case 2.1:
    • 输入(同Case 1.1)
       I   am   wowpH.   
    
    • 输出
    
    I
    am
    wowpH.
    
    1. 首部的空格没有全部去掉,其中的一个空格变成了一个空串。
    2. 中间和末尾的正常分割成数组。

    因此如果知道字符串首部没有空格的情况下,可以用这种方法分割多个空格。(比较鸡肋,不建议用)。

    要想完全不要空格,最好的方法是先去掉字符串首尾的空格,再用CaseTwo的方法。代码如下:

    CaseThree

    import java.util.Scanner;
    
    public class CaseThree {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		String oldStr = sc.nextLine();// 需要处理的字符串
    		sc.close();
    
    		oldStr = oldStr.trim();// 去掉首尾空格
    
    		String cut = "\s+";// 分割串,此处为至少一个空格
    
    		String[] newStr = oldStr.split(cut);// 分割成数组
    
    		for (String string : newStr) {
    			System.out.println(string);
    		}
    	}
    }
    
    Case 3.1:
    • 输入(同Case 1.1)
       I   am   wowpH.   
    
    • 输出
    I
    am
    wowpH.
    

    完美解决多个空格的问题。

  • 相关阅读:
    epii.js简约而不简单的JS模板引擎
    Acwing 165. 小猫爬山
    《将博客搬家到csdn》
    Tourism【codeforces 1200E】
    Middle-Out【codeforces 1231E】(字符串匹配问题)
    super_log (广义欧拉降幂)(2019南京网络赛)
    Different Circle Permutation (HDU
    Knapsack Cryptosystem(状压dp)
    Quadratic equation(二次剩余定理)
    分级(线性dp)
  • 原文地址:https://www.cnblogs.com/wowpH/p/11060788.html
Copyright © 2011-2022 走看看