请问有什么方法可以指定字符串长度,不够的自动补空格

问题描述

比如长度1000,如果只有三个字符abc后面自动补997个空格

解决方案

解决方案二:
tooeasy用大腿想想吧.
解决方案三:
引用1楼bigbug9002的回复:

tooeasy用大腿想想吧.

哈哈
解决方案四:
别说循环加空格。。。
解决方案五:
引用2楼amdgaming的回复:

引用1楼bigbug9002的回复:tooeasy用大腿想想吧.哈哈

这位仁兄的头像意思是?
解决方案六:
谁能说下啊,怎么定义这样的字符串~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
解决方案七:
可以写一个方法来实现:publicstaticStringformatStr(Stringstr,intlength){if(str==null){returnnull;}intstrLen=str.length();if(strLen==length){returnstr;}elseif(strLen<length){inttemp=length-strLen;Stringtem="";for(inti=0;i<temp;i++){tem=tem+"";}returnstr+tem;}else{returnstr.substring(0,length);}}
解决方案八:
其中第一个参数为欲修改的字符串,第二个参数是想要的长度。
解决方案九:
比如长度2000的字符串实际只有3个字符,那么要加循环1997加空格操作,是不是效率会很低
解决方案十:
有没有什么方法能在初始化的时候就解决掉?
解决方案十一:
我想知道为什么需要这样一个字符串
解决方案十二:
publicstaticStringrightPad(Stringtext,intlength,charc){char[]array=newchar[length];Arrays.fill(array,c);System.arraycopy(text.toCharArray(),0,array,0,text.length());returnnewString(array);}没有做相关参数check
解决方案十三:
publicstaticStringrightPad(Stringtext,intlength,charc){char[]array=newchar[length];Arrays.fill(array,text.length(),length,c);System.arraycopy(text.toCharArray(),0,array,0,text.length());returnnewString(array);}

更正一下
解决方案十四:
简单的说字符串在1000~2000之间就会报错,现在想加空格,然后用的时候再trim,避免这个区间
解决方案十五:
反过来想啊,你有一个String1000个空格的String那你就想用的时候在String前面加你的字符串啊,长度不就是1000吗前面是你的字符串后面是空格啊,不用循环加空格啊,完全可以生成一个1000个空格的String就行啦
解决方案:
引用4楼husheng86的回复:

引用2楼amdgaming的回复:引用1楼bigbug9002的回复:tooeasy用大腿想想吧.哈哈这位仁兄的头像意思是?

比较喜欢研究象棋算法而已。。。
解决方案:
怎么初始化一个长度1000个空格的字符串??不会是一个一个打吧?还是用循环加空格初始化?又回来了不是。。
解决方案:
11#方法不错,我也写一个:publicclassSimpleTest{publicstaticStringformatString(Stringstr,intlength,Stringslot){StringBuffersb=newStringBuffer();sb.append(str);intcount=length-str.length();while(count>0){sb.append(slot);count--;}returnsb.toString();}publicstaticvoidmain(String[]args){Stringstr="abc";System.out.println(formatString(str,1000,"0"));}}

解决方案:
如果你不循环,难道你想一个字一个字地敲吗?
解决方案:
用循环有什么不好?不用循环就这样来:Stringstr="abc";Stringresult=newString(Arrays.copyOf(str.toCharArray(),30)).replaceAll(""+(char)0,"");System.out.println(result+"|");这是一个指定是30长度的字符串,可以把30用1000替换掉。注意,如果str长度超过30,将被截为30.
解决方案:
循环感觉效率会很低
解决方案:
难道是为了Oracle里的Long类型?17楼的好
解决方案:
你确定Arrays有copyOf方法吗
解决方案:
clob类型。。
解决方案:
引用20楼liu124983205的回复:

循环感觉效率会很低

你真是太搞笑了循环1000次就效率低了?难道Java为了方便事先给你构造好一个长度1000的字符串给你用吗?看下面的代码:longl=System.currentTimeMillis();formatString(str,10000000,"0");//循环1千w次System.out.println(System.currentTimeMillis()-l);

时间不到1s钟。
解决方案:
引用22楼liu124983205的回复:

你确定Arrays有copyOf方法吗

你先查查API再问可以吗?
解决方案:
C定义的char数组就可以自动补空格
解决方案:
jdk6才有。。。
解决方案:
引用26楼liu124983205的回复:

C定义的char数组就可以自动补空格

Java也可以
解决方案:
引用27楼liu124983205的回复:

jdk6才有。。。

char数组自动补的是'a'吧?
解决方案:

解决方案:
publicclassTest{publicstaticvoidmain(String[]args){Stringstr="abc";longt0,t1;t0=System.nanoTime();str=appendSpace(str,5,false);t1=System.nanoTime();System.out.println("|"+str+"|");System.out.println((t1-t0)+"ns");}privatestaticStringappendSpace(Stringstr,intspaceCount,booleanappendHead){char[]chs=newchar[str.length()+spaceCount];for(inti=appendHead?0:str.length(),j=0;j<spaceCount;j++){chs[i++]='';}System.arraycopy(str.toCharArray(),0,chs,appendHead?spaceCount:0,str.length());returnnewString(chs);}}
解决方案:
貌似是有点简单建立一个字符串initStr里面是n个空格,然后自己要添加的字符串为string,把字符串复制到前面就可以了
解决方案:
newString(newchar[10]).replace((newchar[1])[0],'')

跟19楼基本类似
解决方案:
我来翻老帖了。总结了楼上的两个方法:publicstaticvoidmain(String[]args){Stringg="Ganky";longl=System.currentTimeMillis();formatStr(g,10000000,'0');System.out.println(System.currentTimeMillis()-l);l=System.currentTimeMillis();rightPad(g,10000000,'0');System.out.println(System.currentTimeMillis()-l);}publicstaticStringrightPad(Stringtext,intlength,charc){char[]array=newchar[length];System.arraycopy(text.toCharArray(),0,array,0,text.length());Arrays.fill(array,text.length(),length,c);returnnewString(array);}publicstaticStringformatStr(Stringstr,intlength,charc){StringBuffersb=newStringBuffer(str);length=length-str.length();for(inti=0;i<length;i++){sb.append(c);}returnsb.toString();}

经过简单的测试(1000W长度),rightPad方法效率高出不少,相差近10倍如果单纯是LZ要求的1000长度的话,基本上没差别(1毫秒以内)
解决方案:
Stringstr="abc";str=String.format("%1$-1000s",str);

解决方案:
关注中。。。
解决方案:
引用14楼djbcainiao的回复:

反过来想啊,你有一个String1000个空格的String那你就想用的时候在String前面加你的字符串啊,长度不就是1000吗前面是你的字符串后面是空格啊,不用循环加空格啊,完全可以生成一个1000个空格的String就行啦

哥也是这么想地
解决方案:
引用35楼andycpp的回复:

JavacodeStringstr="abc";str=String.format("%1$-1000s",str);

不错
解决方案:
String.format("%-1000s","abc");正负号可以控制空格符是添加到abc之前还是之后
解决方案:
该回复于2010-09-30 10:01:10被版主删除
解决方案:
ding..............
解决方案:
ding............
解决方案:
引用38楼qingralf的回复:

引用35楼andycpp的回复:JavacodeStringstr="abc";str=String.format("%1$-1000s",str);不错

+1
解决方案:
该回复于2010-09-30 09:48:29被版主删除
解决方案:
刚开始我觉得csdn咋现在竟出些开玩笑的人,看到后来终于看到有人正经起来了
解决方案:
publicclasstest{publicstaticvoidmain(Stringagrs[]){Stringba="abc";Stringresult_ba="";result_ba=String.format("%-1000s",ba);System.out.println(result_ba);}}
解决方案:
第一步,这个问题有必要么?第二步,楼主设计的方法是否正确?
解决方案:
谢谢!!!楼上的各位!!
解决方案:
能详细讲解下吗?我知道这是返回一个格式化的字符串。api中是publicstaticStringformat(Stringformat,Object...args)String是那个基本的字符串,arg貌似是格式?看不懂啊?引用39楼soft_dep的回复:

String.format("%-1000s","abc");正负号可以控制空格符是添加到abc之前还是之后

解决方案:
顶回复,10分走人。

时间: 2024-09-28 09:27:14

请问有什么方法可以指定字符串长度,不够的自动补空格的相关文章

java中截取指定字符串长度函数

     /*      * content内容过长可能会导致xml文件过大,加载太慢.      * 但从seo的角度考虑全部输出有利于搜索引擎,但一般情况下内容也不会太多      * 为防止空格换行css无法控制撑大页面,用正则表达式替换掉空格,所以截取前面100个字符,页面显示的内容多少用css控制       *zdz的作品,流风的作品      */      //str.trim().replaceAll("\s+"," ");      String

Python实现Tab自动补全和历史命令管理的方法_python

本文实例讲述了Python实现Tab自动补全和历史命令管理的方法.分享给大家供大家参考.具体分析如下: Python的startup文件,即环境变量 PYTHONSTARTUP 对应的文件 1. 为readline添加tab键自动补全的功能 2. 像Shell一样管理历史命令 代码如下: 复制代码 代码如下: import rlcompleter import readline import atexit import os # http://stackoverflow.com/question

PHP获取中英混合字符串长度的方法

 今晚在写框架的表单验证类时,需要判断某个字符串长度是否在指定区间内,很自然地,想到了PHP中的strlen函数. .代码如下: $str = 'Hello world!'; echo strlen($str); // 输出12 然而在PHP自带的函数中,strlen及mb_strlen都是通过计算字符串所占字节数来计算长度的,在不同的编码情况下,中文所占的字节数是不同的.在GBK/GB2312下,中文字符占2个字节,而在UTF-8下,中文字符占3个字节. .代码如下: $str = '你好,世

JavaScript实现按照指定长度为数字前面补零输出的方法_javascript技巧

本文实例讲述了JavaScript实现按照指定长度为数字前面补零输出的方法.分享给大家供大家参考.具体分析如下: 例如我们希望输出的数字长度是固定的,假设为10,如果数字为123,则输出0000000123,不够位数就在之前补足0,这里提供了三种不同的方式实现JS代码给数字补0 的操作 方法1 function PrefixInteger(num, length) { return (num/Math.pow(10,length)).toFixed(length).substr(2); } 方法

C++不使用变量求字符串长度strlen函数的实现方法

  本文实例讲述了C++不使用变量求字符串长度strlen函数的实现方法.分享给大家供大家参考.具体实现方法如下: 1.strlen的源码实现: ? 1 2 3 4 5 6 7 size_t strlen(const char *str) //strlen不做内存非法判断,如果是NULL,会core. { const char *eos=str; while(*eos++); return (eos-str-1); } 2.常见面试题会要求不使用额外变量,实现strlen函数: 实现一: ? 1

php实现指定字符串中查找子字符串的方法

 这篇文章主要介绍了php实现指定字符串中查找子字符串的方法,涉及php中strpos()函数查找字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了php实现指定字符串中查找子字符串的方法.分享给大家供大家参考.具体分析如下: 对strpos()函数可以用来在php中查找子字符串.strpos()函数将试图找到子字符串在源字符串中首次出现的位置.如果找到了,它会返回一个非负整数表示子字符串出现的位置. 否则它会返回一个布尔值false. ? 1 2 3 4 5 6

python使用xlrd实现检索excel中某列含有指定字符串记录的方法

  这篇文章主要介绍了python使用xlrd实现检索excel中某列含有指定字符串记录的方法,涉及Python使用xlrd模块检索Excel的技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了python使用xlrd实现检索excel中某列含有指定字符串记录的方法.分享给大家供大家参考.具体分析如下: 这里利用xlrd,将excel中某列数据中,含有指定字符串的记录取出,并生成用这个字符串命名的txt文件 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1

JavaScript实现按照指定长度为数字前面补零输出的方法

 这篇文章主要介绍了JavaScript实现按照指定长度为数字前面补零输出的方法,实例分析了javascript操作数字补零的技巧,需要的朋友可以参考下     本文实例讲述了JavaScript实现按照指定长度为数字前面补零输出的方法.分享给大家供大家参考.具体分析如下: 例如我们希望输出的数字长度是固定的,假设为10,如果数字为123,则输出0000000123,不够位数就在之前补足0,这里提供了三种不同的方式实现JS代码给数字补0 的操作 方法1 ? 1 2 3 function Pref

jQuery对指定元素中指定字符串进行替换的方法

 这篇文章主要介绍了jQuery对指定元素中指定字符串进行替换的方法,涉及jQuery针对字符串的匹配与替换的操作技巧,非常具有实用价值,需要的朋友可以参考下     本文实例讲述了jQuery对指定元素中指定字符串进行替换的方法.分享给大家供大家参考.具体如下: 这段JS代码可以将指定id的元素内容的字符串进行替换,例如西面的代码将id=content元素中的jb51字符串替换成空字符 html部分如下: ? 1 <div id=content>welcome to jb51</div