请教各位高手一个将给定的字符串型的数值输入数据中的无效零去掉的问题~! 设计一个程序,将给定的字符串型的数值输入数据中的无效零去掉,返回一个新的字符串。数据只考虑有数字,小数点的情况。(其他0-9,“.”以外的字符(逗号,+,-,E等)直接按非法处理)例如:“00001”--> 输出“1”, 包含非法字符的字符串--> 返回异常.请教会的高手们这个程序应该用java怎么写啊 非常感谢啊!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不难呀!class A{ public static String str = "000100000.00"; public static void main(String[] arg0) { System.out.println(new Double(str));//ok不? }} 不难呀! class A{ public static String str = "000100000.00"; public static void main(String[] arg0) { System.out.println(new Double(str)); }} 这是Integer的class A{ public static String str = "000100000"; public static void main(String[] arg0) { System.out.println(new Integer(str)); }} java_zhaidp 真会开玩笑,呵呵楼主看看下面这段代码//作者:dyw31415926 留个名才行,100%原创 ^-^public class Test001 { public static void main(String[] args) { Test001 test001 = new Test001(); //测试一 String str1 = "00001"; String str1RemoveZero = test001.removeZero(str1); System.out.println("str1RemoveZero=" + str1RemoveZero);// 1 //测试二 String str2 = "000100000"; String str2RemoveZero = test001.removeZero(str2); System.out.println("str2RemoveZero=" + str2RemoveZero);// 100000 //测试三 String str3 = "000100000.0010"; String str3RemoveZero = test001.removeZero(str3); System.out.println("str3RemoveZero=" + str3RemoveZero);// 100000.001 //测试四 String str4 = "000.000100"; String str4RemoveZero = test001.removeZero(str4); System.out.println("str4RemoveZero=" + str4RemoveZero);// 0.0001 //测试五 String str5 = "000adf100000"; String str5RemoveZero = test001.removeZero(str5); System.out.println("str5RemoveZero=" + str5RemoveZero);// "" //从上面的测试结果来看,应该说很好的满足我们的目的了 } /** * 将给定的字符串型的数值输入数据中的无效零去掉,返回一个新的字符串。 * @param str 你要转换的字符串 * @return 转换后的字符串 */ public String removeZero(String str) { String temp = str; temp = temp.replaceAll("\\.", "").replaceAll("\\d", ""); if (!temp.equals("")) { //因为出现了非法字符了,所以直接返回 ""; return ""; } String returnString = str; //首先判断有没有. int indexPoint = returnString.indexOf("."); //如果有.则分为左右两部分处理,左边是整数部分,右边是剩下的部分 if (indexPoint > 0) { //获取整数部分 String strLeft = returnString.substring(0, indexPoint); //获取剩下的部分 String strRight = returnString.substring(indexPoint, returnString .length()); //将整数部分的前缀0都去掉,前提是至少整数部分还有一位 while (strLeft.startsWith("0") && strLeft.length() > 1) { strLeft = strLeft.substring(1, strLeft.length()); } //将小数部分的0都去掉, while (strRight.endsWith("0")) { strRight = strRight.substring(0, strRight.length() - 1); } //如果小数部分全部是0,则小数点.也是没有意思的,则也去掉 if (strRight.endsWith(".")) { strRight = ""; } //将处理过的整数部分和剩下的部分再次合起来,连成返回的字符串 returnString = strLeft + strRight; } //如果没有小数点,则好办多了,直接将前缀的0去掉,前提是至少整数部分还有一位 else{ while (returnString.startsWith("0") && returnString.length() > 1) { returnString = returnString.substring(1, returnString.length()); } } return returnString; }} 谢谢 dyw31415926 的例子了 看后收获比较大!! dyw31415926:最简单的难道不是最好的? servlet部署 看这个问题 感兴趣 就进来试试!!!!!!!! 做一个WWW浏览器中需要用到的打印功能怎么实现 建立一个数组对象的问题,请帮帮忙,在线等了, drawOval()函数怎么算出圆心的坐标? 一个线程问题,困绕了我一周,哪位能帮忙看看吗?(有源程序),谢谢 一个Applet简单问题,快来抢分啊! 急急:高分请教:在applet中调用javascript函数出错: SQL查询 有感而发!!! 关于服务器端客户端处理问题!通过SOCKET来进行监听! 面试问题(转贴)
class A{
public static String str = "000100000.00";
public static void main(String[] arg0)
{
System.out.println(new Double(str));//ok不?
}
}
public static String str = "000100000.00";
public static void main(String[] arg0)
{
System.out.println(new Double(str));
}
}
public static String str = "000100000";
public static void main(String[] arg0)
{
System.out.println(new Integer(str));
}
}
楼主看看下面这段代码//作者:dyw31415926 留个名才行,100%原创 ^-^
public class Test001 {
public static void main(String[] args) {
Test001 test001 = new Test001();
//测试一
String str1 = "00001";
String str1RemoveZero = test001.removeZero(str1);
System.out.println("str1RemoveZero=" + str1RemoveZero);// 1
//测试二
String str2 = "000100000";
String str2RemoveZero = test001.removeZero(str2);
System.out.println("str2RemoveZero=" + str2RemoveZero);// 100000
//测试三
String str3 = "000100000.0010";
String str3RemoveZero = test001.removeZero(str3);
System.out.println("str3RemoveZero=" + str3RemoveZero);// 100000.001
//测试四
String str4 = "000.000100";
String str4RemoveZero = test001.removeZero(str4);
System.out.println("str4RemoveZero=" + str4RemoveZero);// 0.0001
//测试五
String str5 = "000adf100000";
String str5RemoveZero = test001.removeZero(str5);
System.out.println("str5RemoveZero=" + str5RemoveZero);// ""
//从上面的测试结果来看,应该说很好的满足我们的目的了 } /**
* 将给定的字符串型的数值输入数据中的无效零去掉,返回一个新的字符串。
* @param str 你要转换的字符串
* @return 转换后的字符串
*/
public String removeZero(String str) {
String temp = str;
temp = temp.replaceAll("\\.", "").replaceAll("\\d", "");
if (!temp.equals("")) {
//因为出现了非法字符了,所以直接返回 "";
return "";
}
String returnString = str;
//首先判断有没有.
int indexPoint = returnString.indexOf(".");
//如果有.则分为左右两部分处理,左边是整数部分,右边是剩下的部分
if (indexPoint > 0) {
//获取整数部分
String strLeft = returnString.substring(0, indexPoint);
//获取剩下的部分
String strRight = returnString.substring(indexPoint, returnString
.length());
//将整数部分的前缀0都去掉,前提是至少整数部分还有一位
while (strLeft.startsWith("0") && strLeft.length() > 1) {
strLeft = strLeft.substring(1, strLeft.length());
}
//将小数部分的0都去掉,
while (strRight.endsWith("0")) {
strRight = strRight.substring(0, strRight.length() - 1);
}
//如果小数部分全部是0,则小数点.也是没有意思的,则也去掉
if (strRight.endsWith(".")) {
strRight = "";
}
//将处理过的整数部分和剩下的部分再次合起来,连成返回的字符串
returnString = strLeft + strRight;
}
//如果没有小数点,则好办多了,直接将前缀的0去掉,前提是至少整数部分还有一位
else{
while (returnString.startsWith("0") && returnString.length() > 1) {
returnString = returnString.substring(1, returnString.length());
}
}
return returnString;
}
}