首页 > 解决方案 > 从没有修剪()的字符串的开头和结尾删除空格

问题描述

如何在String不使用该trim()方法的情况下从 a 的开头和结尾删除空格?

这是我的代码

public class StringTest {

    public static void main(String[] args) {
       String line = " Philippines|  WNP|Naga  |Camarines Sur|Naga Airport  ";

                //System.out.println(line);

                int endIndex = line.indexOf("|");
                String Country = line.substring(0, endIndex);
                line = line.substring(endIndex + 1);

                int endIndexCountry = line.indexOf("|");
                String Code = line.substring(0, endIndexCountry);
                line = line.substring(endIndexCountry + 1);

                int endIndexCode = line.indexOf("|");
                String City = line.substring(0, endIndexCode);
                line = line.substring(endIndexCode + 1);

                int endIndexCity = line.indexOf("|");
                String State = line.substring(0, endIndexCity);
                line = line.substring(endIndexCity + 1);

                System.out.print("Code:" + Code + "____");
                System.out.print("Country:" + Country + "____");
                System.out.print("State:" + State + "____");
                System.out.print("City:" + City + "____");
                System.out.println("Airport:" + line+ "____");
    }
}

我的输出看起来像这样

Code:  WNP____Country: Philippines____State:Camarines Sur____City:Naga  ____Airport:Naga Airport  ____

我需要看起来像这样(没有空格)

Code:WNP____Country:Philippines____State:Camarines Sur____City:Naga____Airport:Naga Airport____

标签: javastring

解决方案


如何在不使用 trim() 方法的情况下从字符串的开头和结尾删除空格?

您可以使用正则表达式模式和String::replaceAll.

public class Main {
    public static void main(String[] args) {
        String str = "      Hello       ";
        System.out.println("Before: " + str + "World!");
        str = str.replaceAll("^[ \\t]+", "").replaceAll("[ \\t]+$", "");
        System.out.println("After: " + str + "World!");
    }
}

输出:

Before:       Hello       World!
After: HelloWorld!

推荐阅读