/*
* 被过滤的字符串很大 ,并且数字字符的比例很低
* 可以把new StringBuffer(nLen);修改为new StringBuffer(nLen/10);来节约空间开销
*/
class StrTest {
public static void main(String[] args)
{
String str = "D186783E36B721651E8AF96AB1C4000B";
long nBegin = System.currentTimeMillis();
for(int i=0; i<1024*1024; i++)
{
str = filter(str); //此处调用某个具体的过滤函数
}
long nEnd = System.currentTimeMillis();
System.out.println(nEnd-nBegin);
System.out.println(str);
}
private static String filter(String strOld)
{
int nLen = strOld.length();
StringBuffer strNew = new StringBuffer(nLen);
for(int i=0; i<nLen; i++)
{
char ch = strOld.charAt(i);
if('0'<=ch && ch<='9')
{
strNew.append(ch);
}
}
return strNew.toString();
}
};
class StrTest
{
public static void main(String[] args)
{
String str = "D186783E36B721651E8AF96AB1C4000B";
long nBegin = System.currentTimeMillis();
for(int i=0; i<1024*1024; i++)
{
str = filter(str);
}
long nEnd = System.currentTimeMillis();
System.out.println(nEnd-nBegin);
System.out.println(str);
}
private static String filter(String strOld) {
char[] chArray = new char[strOld.length()];
int nPos = 0;
for(int i = 0;i<strOld.length();i++) {
char charNew = strOld.charAt(i);
if(charNew>='0'&&charNew<='9') {
chArray[nPos] = charNew;
nPos++;
}
}
return new String(chArray,0,nPos);
}
};
/*
* 被过滤的字符串很大 ,并且数字字符的比例大于50%
*/
class StrTest
{
public static void main(String[] args)
{
String str = "D186783E36B721651E8AF96AB1C4000B";
long nBegin = System.currentTimeMillis();
for(int i=0; i<1024*1024; i++)
{
str = filter(str);
}
long nEnd = System.currentTimeMillis();
System.out.println(nEnd-nBegin);
System.out.println(str);
}
private static String filter(String strOld) {
char[] chArray = new char[strOld.length()];
int nPos = 0;
for(int i = 0;i<strOld.length();i++) {
char charNew = strOld.charAt(i);
if(charNew>='0'&&charNew<='9') {
chArray[nPos] = charNew;
nPos++;
}
}
return new String(chArray,0,nPos);
}
};