定义了一个字符串str="1234";
现在想在字符串后面加5个空格 怎么写效率高些
已经知道的方式
for(int i =0 ,i<5,i++){
str=str+" ";
}
这样写循环效率太低了
现在想在字符串后面加5个空格 怎么写效率高些
已经知道的方式
for(int i =0 ,i<5,i++){
str=str+" ";
}
这样写循环效率太低了
解决方案 »
- 一个简单的关于数组和容器的转换,编译正常,运行错误,请帮忙,谢谢!
- AWT-EventQueue-0异常问题
- JButton 问题
- 遍历指定文件夹的代码,大家也把自己贴上来吧,希望前辈们也进来指点一下,我想学习学习,提建议的,贴代码的都有分。
- java小鸟问题
- 几个java基础问题
- 谁有软件自动质量管理方面的论文,大约5万字左右(英文)
- 求一个 匹配 (任意符号+任意数字+任意字母)1个或者多个的正则表达式
- 为什么进度条走不到100%?
- 在tomcat中,后缀为war的文件是什么东西,有什么用途?
- 小问题!麻烦帮我解决下!关于==的!
- 向高手请教..用辗除法求2个数的最大公约数和最小公倍数..
str=str+" "; //" "为五个空格不行嘛?
System.out.println(str.length());
结果:9
StringBuffer sb=new StringBuffer(str);
sb.append(" 5个空格");
System.out.println("sb="+sb); sb=1234 5个空格
{
char[] spaceChars = new char[number];
for( int i = 0; i < spaceChars.length; i++ )//这样写比1.5添加的for...each循环效率要高些
{
spaceChars[i] = ' ';
}
return new String(spaceChars);
}
public static void main(String[] args) {
String str = "abc";
long t0, t1;
t0 = System.nanoTime();
str = appendSpace(str, 5, false);
t1 = System.nanoTime();
System.out.println("|" + str + "|");
System.out.println((t1 - t0) + " ns");
} private static String appendSpace(String str, int spaceCount, boolean appendHead) {
char[] chs = new char[str.length() + spaceCount];
for(int i = appendHead ? 0 : str.length(), j = 0; j < spaceCount; j++) {
chs[i++] = ' ';
}
System.arraycopy(str.toCharArray(), 0, chs, appendHead ? spaceCount : 0, str.length());
return new String(chs);
}
}
public static void main(String[] args) {
String str = "abc";
long t0, t1;
t0 = System.nanoTime();
str = appendSpace(str, 5, false);
t1 = System.nanoTime();
System.out.println("|" + str + "|");
System.out.println((t1 - t0) + " ns");
} private static String appendSpace(String str, int spaceCount, boolean appendHead) {
char[] chs = new char[str.length() + spaceCount];
for(int i = appendHead ? 0 : str.length(), j = 0; j < spaceCount; j++) {
chs[i++] = ' ';
}
System.arraycopy(str.toCharArray(), 0, chs, appendHead ? spaceCount : 0, str.length());
return new String(chs);
}
}
Arrays.fill(blankArr, ' ');
String str="start";
str+=new String(blankArr);
str+="end";
System.out.println(str);
查了一下源码,发现本质还是for循环一个一个填,不过多了一个边界检查。
小小自豪下:)