class Test
{
public static String parseValue(String str)
{
String values[]=str.split(".");
String returnStr="";
for(int k=0;k<values.length;k++)
{
returnStr+=values[k];
}
return returnStr;
}
public static void main(String[] args)
{
System.out.println(parseValue("12.345"));
}
}
{
public static String parseValue(String str)
{
String values[]=str.split(".");
String returnStr="";
for(int k=0;k<values.length;k++)
{
returnStr+=values[k];
}
return returnStr;
}
public static void main(String[] args)
{
System.out.println(parseValue("12.345"));
}
}
被str.split("."); 处理后
装入values[]这个字符数组中,values[0]=12
values[1]=345returnStr=""+"12"+"345";
returnStr="12345";不知道是否正确。欢迎高手指教!
. Any character (may or may not match line terminators)
点表示任何字符
代码应为:
public static String parseValue(String str)
{
String values[]=str.split("\\."); //此处不同
String returnStr="";
for(int k=0;k <values.length;k++)
{
returnStr+=values[k];
}
return returnStr;
}
public static void main(String[] args)
{
System.out.println(parseValue("12.345"));
}
解释: 在正则表达式里,表示点号要转义为“\\.”。
“.”表示任意字符。 所以楼主的程序才会出现空行,因为任何字符都是分隔符,
分隔符是被过滤的。所以就是空了。在正则表达式里经常会遇到这个问题。
也可以这样实现:
public static String parseValue(String str)
{
String values[]=str.split("[.]"); //
String returnStr="";
for(int k=0;k <values.length;k++)
{
returnStr+=values[k];
}
return returnStr;
}
public static void main(String[] args)
{
System.out.println(parseValue("12.345"));
}