然后,推荐考虑使用StringBuilder。在静态方法中,或者牵扯到成员变量的,再用StringBuffer;其他的情况都优先考虑用StringBuilder。
StringBuilder的速度比StringBuffer快,StringBuffer是线程安全的,StringBuffer在运行大部分方法前都需要申请类锁。用c#或java这样的语言直接把数组遍历转换为字符串然后与目标字符串再连接就行
例如java
int[] temp = {1,22,3990,23,4};
StringBuilder objString = new StringBuilder("字符串连接数组");
for(int i=0;i<templenght;i++)
{
objStringappend(temp[i]);
}#include <stdioh>
#define INTLEN 8 /容纳整数转换成的字符串的数组的最大长度/
/得到字符串长度/
int strlen(char s[])
{
int i=0;
while(s[i]!='\0')
i++;
return i;
}
/逆转一个字符串/
void reverse(char s[])
{
int i,j;
char c;
for(i=0,j=strlen(s)-1;i<j;i++,j--)
{
c=s[i];
s[i]=s[j];
s[j]=c;
}
}
char int_to_string(int n,char s[])
{
int i,sign; /sign判断是不是小于0/
if((sign=n)<=0)
n=-n;
i=0;
/使用do-while循环后,n为0的情况就不用单独处理/
do{
s[i++]=n%10+48;
}while((n/=10)>0);
if(sign<0) s[i++]='-';
s[i]='\0';
reverse(s);
return s;
}
int main(void)
{
int n;
char s[INTLEN];
printf("input a integer: ");
scanf("%d",&n);
int_to_string(n,s);
printf("string: %s\n",s);
return 0;
}你可以先将x定义为一个字符串变量,在循环内给x赋值,循环完成之后在将这个x显示出来 从1000循环到10000 我算了一个,整个过程用不了1秒钟
给你代码你可以看一下,:
Private Declare Function timeGetTime Lib "winmmdll" () As Long
Private Sub Command1_Click()
Dim a As Long, b As Long
Dim x As String
a = timeGetTime
x = ""
For i = 1000 To 10000
x = x & i
Next i
Print x '再循环外 显示这个结果
b = timeGetTime
Print "代码执行时间是 " & b - a & "毫秒"
End Sub
如果你还想提高运算速度的话,那只能看机器的性能了嘿嘿,我来试一下
//一般情况下,动态字符串的连接 *** 作用StringBuffer更有效率
StringBuffer menus = new StringBuffer();
for(int i=0;i<listsize();i++){
Role role = (Role) listget(i);
if(i>0)
menusappend(",");
menusappend(rolegetMenus());
}
Systemoutprintln(menustoString());//就可以打印出连接的结果了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)