java中String的spilt()与trim()的使用与区别(当去除空格时)

trim():只去掉字符串的头与尾的空格,中间空格不去除

public class GetString {
    String[] StringArray;
    String string;

    public void Get(){
        StringArray = new String[20];

        Scanner tempSc = new Scanner(System.in);
        string = tempSc.nextLine();
        string = string.trim();
        
        System.out.println(string);
    }
}

若输入为“ asdasd asd asd ”,则输出结果为"asdasd asd asd"

split():

public class GetString {
    String[] StringArray;
    String string;

    public void Get(){
        StringArray = new String[20];

        Scanner tempSc = new Scanner(System.in);
        string = tempSc.nextLine();
        
        StringArray = string.split(" ",20);
        
       for (String one : StringArray){
            System.out.print(one);
        }
    }
}

split(要删除的目标字符,最多删除多少个),以目标字符作为字符分割点,分割成多个字符串,并删除目标字符
若输入为“ asdasd asd asd ”,则输出结果为"asdasdasdasd"

若有多个连续空格时:

StringArray = string.split(" +");//注意 是 “ +”多了个加号

输入为:

"asd    asd    asd    asd    asd  sad"
asdasdasdasdasdsad

关注公众号,获取更多资源
关注公众号,获取更多java资源

### Java中 `split` 方法的用法 #### 基础概念 在 Java 中,`split` 是 `String` 类的一个方法,用于将字符串按指定的分隔符拆分为若干部分,并返回一个字符串数组。其语法如下: ```java public String[] split(String regex, int limit) ``` - **参数说明**: - `regex`: 表示分隔符的正则表达式[^2]。 - `limit`: 可选参数,控制返回数组的最大长度。当为负数不限制;为零不保留尾部空字符串;为正数最多分割成该数量的子串[^1]。 #### 示例解析 ##### 示例 1:基本用法 以下代码展示了如何通过空格分隔字符串并打印结果: ```java String str = "Java string split test"; String[] strArray = str.split(" "); for (int i = 0; i < strArray.length; i++) { System.out.println(strArray[i]); } // 输出: // Java // string // split // test ``` 此例中,字符串 `"Java string split test"` 使用单个空格作为分隔符进行分割[^2]。 ##### 示例 2:带限制条件 (`limit`) 下面的例子演示了设置最大分割次数的效果: ```java String str = "Java string split test"; String[] strArray = str.split(" ", 2); for (int i = 0; i < strArray.length; i++) { System.out.println(strArray[i]); } // 输出: // Java // string split test ``` 在此情况下,由于设置了 `limit=2`,因此只进行了第一次分割,剩余部分作为一个整体保存到第二个元素中[^1]。 ##### 示例 3:处理特殊字符 某些特殊字符(如 `.`, `|`, `\` 等)需要使用反斜杠进行转义才能正确识别为分隔符: ```java String str = "a.b.c.d.e"; String[] strArray = str.split("\\."); for (int i = 0; i < strArray.length; i++) { System.out.println(strArray[i]); } // 输出: // a // b // c // d // e ``` 这里因为`.`具有特殊的含义(匹配任意字符),所以需要用双反斜杠对其进行转义[^3]。 #### 注意事项 1. 如果分隔符本身也是正则表达式的元字符,则需加以转义; 2. 当输入字符串为空或者仅由分隔符组成,可能会产生包含空字符串的数组成员; 3. 设置不同的 `limit` 参数会对最终结果造成显著差异,开发者应根据实际需求合理配置。 ```java // 处理多个连续分隔符的情况 String str = "abc,,,def,,ghi"; String[] parts = str.split(",", -1); // 不忽略结尾处可能存在的空白项 System.out.println(Arrays.toString(parts)); // 结果 ["abc", "", "", "def", "", "ghi"] parts = str.split(","); // 默认行为会移除多余的空条目 System.out.println(Arrays.toString(parts)); // 结果 ["abc", "def", "ghi"] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值