zoukankan      html  css  js  c++  java
  • Java去除字符串多余空格以及首尾空格

    对于这个问题,我的处理方法是:

    1.先通过递归数出字符串中连续空格的个数。

    2.将有连续空格的位置去除多余空格。

    3.判断首尾是否有空格。

    第一步,判断当前位置是否是空格以及连续空格的个数,这里使用一个递归的方法比较简单。代码如下:

    public static int getBlankNumber(String s, int index)
    {
        if (index < s.length()) {
            if (s.charAt(index) == ' ') {
                return getBlankNumber(s, index + 1) + 1;
            } else {
                return 0;
            }
        } else {
            return 0;
        }
    }

    传入字符串对象 s ,以及当前的位置 index,最终返回一个 int 型的结果,也就是多少个空格。

    第二步,跟上返回的空格数,与当前的位置,使用 String 对象自带的 substring() 方法,将字符串分割为两部分,去掉中间的空格,再连接起来,使连续多个空格变为一个。代码如下:

    public static String mergeBlank(String s)
    {
        int numberBlank = 0;
        String a1;  //字符串的第一部分
        String a2;  //字符串的第二部分
        for (int index = 0; index < s.length(); index++) {  //循环整个字符串,判断是否有连续空格
            numberBlank = getBlankNumber(s, index);
            if (numberBlank >= 2) {  //根据连续空格的个数以及当前的位置,截取字符串
                a1 = s.substring(0, index);
                a2 = s.substring(index + numberBlank - 1, s.length());
                s = a1 + a2;  //合并字符串
            }
        }
        return s;
    }

    第三步,第二步完成之后,第三步就很简单了,因为我们已经将字符串中多余的空格变为一个空格,如果需要去除首尾空格,只需要判断首尾是否是空格即可。代码如下:

    public static String trim(String s)
    {
        if (s.charAt(0) == ' ') {
            s = s.substring(1, s.length());
        }
        if (s.charAt(s.length() - 1) == ' ') {
            s = s.substring(0, s.length() - 1);
        }
        return s;
    }

    这样一来,一个去除多余空格,去除首尾空格的函数就完成了。接下来调用一下看看,代码如下:

    public static void main(String[] args) {
        String name = mergeBlank("   aaa   a     aa       ");
        System.out.println("name="+name+"|");  //结果:name= aaa a aa |
        name = trim(name);
        System.out.println("name="+name+"|");  //结果:name=aaa a aa|
    }
  • 相关阅读:
    [Chrome_OS]Crosh Shell终端 基础命令
    [HTML5_WebSockets]HTML 5 Web Sockets应用初探
    [HTML5_WebWorkers]利用HTML5的window.postMessage实现跨域通信
    [HTML5_资源]49个超炫的HTML 5示例
    [HTML5_资源]国外模版网站
    [HTML5_JS跨域]JavaScript跨域总结与解决办法
    [HTML5_资源]给网页设计师的30个HTML5学习资源
    [HTML5_WebWorkers]HTML5 web通信(跨文档通信/通道通信)简介
    [HTML5_JQueryMobile]20个很棒的 jQuery Mobile 教程
    LeetCode-513. Find Bottom Left Tree Value
  • 原文地址:https://www.cnblogs.com/kross/p/2973507.html
Copyright © 2011-2022 走看看