关于Java实现去除连续空格的延伸

  第一篇随笔,技术含量比较低,当做笔记给自己记录一下现阶段的一次学习。(*^__^*) ……

  Java中去除连续空格的代码很简单:

public static String formatString(String sourceString) {
        return sourceString.replaceAll(" +", " ");
    }

  比如输入字符串"a  b   c    d",则经过调用函数处理可以输出"abcd"。replaceAll(" +","")是去除所有连续空格,还可以用replaceAll("\\s+","")匹配空格、制表符、换页符等其中任意一种空白字符,去除所有连续空白字符。

  然而看到网上有帖子说replaceAll方法效率比较低,于是慢慢研读了一下,可以对这个代码进行优化。

static public String spaceCharacter(String sourceString) {
        if (sourceString != null) {
            int len = sourceString.length();
            if (len > 0) {
                char[] dest = new char[len];
                int destPos = 0;
                for (int i = 0; i < len; ++i) {
                    char c = sourceString.charAt(i);
                    if (!Character.isWhitespace(c)) {
                        dest[destPos++] = c;
                    }
                }
                return new String(dest, 0, destPos);
            }
        }
        return sourceString;
    }

  这个代码究竟怎么出来的,可以看看这个博文:http://www.2cto.com/kf/201406/309388.html

  经过优化后的代码执行效率确实比直接replaceAll要高一些。

  (ps:还有一个小东西,关于for循环的i++和++i的问题,有篇for循环中i++与++i的效率探究,但是作者不让转载就不贴这里了~只能自己搜啦)

时间: 2024-12-21 09:29:58

关于Java实现去除连续空格的延伸的相关文章

java压缩去除html空格和换行解决微信域名下不兼容

直接贴代码. java压缩去除html空格和换行解决微信域名下不兼容 调用:content = HtmlCompressor.compress(content); import java.io.StringReader;import java.io.StringWriter;import java.util.*;import java.util.regex.*; /******************************************* * 压缩jsp,html中的代码,去掉所有空

PHP去除连续空格

<?php $note = strip_tags($value['Content']); $note = trim($note); $note = str_replace(" ","",$note); $note = preg_replace('#\s+#', ' ',trim($note)); $note = str_replace("<","<",$note); $note = str_replace(&

寻找连通线,参考八后算法递归,可用于验证码去除连续干扰线

寻找连通线,参考八后算法递归,可用于验证码去除连续干扰线 https://github.com/isee15/captcha-ocr/blob/master/src/cn/z/NoiseLine.java package cn.z; import java.awt.Color;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException; import javax.imageio.ImageI

java中去掉字符串空格

去掉字符串空格 在读取配置文件是termiBrand=CMDC`01|Huawei Technologies Co., Ltd`05 这里面的值无法或数据库里面查询出来的值进行对比判断,需要将字符串的空格去掉然后在进行判断 str.trim(); //去掉首尾空格 str.replace(" ",""); //去除所有空格,包括首尾.中间 str.replaceAll(" ", ""); //去掉所有空格,包括首尾.中间 //

java去掉全角空格和半角空格的方法,

JAVA中去掉空格 1. String.trim() trim()是去掉首尾空格 2.str.replace(" ", ""); 去掉所有空格,包括首尾.中间 String str = " hell o "; String str2 = str.replaceAll(" ", ""); System.out.println(str2); 3.或者replaceAll(" +","

字符串逆转-压缩连续空格

一.算法描述 给定一个字符串,对于字符串包括多个连续空格的情况,压缩并只保留一个空格,同时以空格隔离的子串逆转. 二.算法思路 其本质是字符串逆转的变体,即在字符串逆转的基础上,还要压缩多余空格,这种情况相比单纯的字符串逆转多了一步判断连续空格的条件 如下代码中,包括单纯的字符串逆转函数,实现比较简单,主要是注意下标的位置 三.算法代码 #include <iostream> #include <string.h> #include <stdio.h> #include

取两位数字,截取数字,求年龄,去除前后空格

//取两位数 function toDou(n) { if(n < 10) { return '0' + n } else { return '' + n } } //截取数字 function getN(s) { if(s) { return s.replace(/[^0-9\.]/ig, ""); } } //去除前后空格 String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ''

iOS开发—去除两端空格和回车

去除两端空格: NSString *temp = [textField.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 去除两端空格和回车: NSString *text = [temp stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet ]];

程序设计-----字符串中删除连续空格,只保留一个空格 数中删除连续相同的数,只保留一个数

一.问题描述 输入一个字符串,注意是可以带空格的,我们所要做的是如果字符之间有很多个连续的空格,我们只需要保留一个空格,并输出显示. 有一个类似的问题,是将一个数中连续相同的数删除掉,只保留其中一个数,如3456667,转化为34567.这个问题与字符串的问题大体上是一致的, 只是字符串限定了只有连续的空格需要处理,连续的其他字符是可以接受的,如abbbc是满足条件的,而a    bbb     ccc则要转换为a bbb ccc. 二.问题分析 在书写程序的过程中,首先的思路是以空间换取时间,