日期:2014-05-20  浏览次数:20618 次

求一个java方法,完成如下的转换要求
package test;

public class Testzero {
public static void main(String[] args) {
//求写一个java方法,实现下面的转换
String s="2.0";----》2.0(和原来一样)
s="2.00";----》2.0(去掉末尾多余的0)
s="2.000";----》2.0(去掉末尾多余的n个0)
s=".333";----》0.333(小数点前面没0就补一个0)
s="001";----》001(和原来一样)
s="0001";----》0001(和原来一样)

}
}

------解决方案--------------------
import java.util.Scanner;

public class  TestZero
{
public static void main(String[] args) 
{
System.out.println("输入一串数字:");
try{
//从控制台接受一个数字
Scanner s = new Scanner(System.in);
String str = s.nextLine();

//利用函数convert进行转换
String result = convert(str);
System.out.println(result);
}catch(Exception e){
e.printStackTrace();
}
}

public static String convert(String str){
//求出str的长度
int length = str.length();
//定义返回值
String result = null;
//首先判断str中是否包含"."
if(str.contains(".")){
//如果"."是第一个
if(str.indexOf(".")==0){
result = "0"+str;
}
if(str.indexOf(".")+1<length&&(str.indexOf(".")!=0)){
str = str.substring(0,str.indexOf(".")+2);
String strNow = str.substring((str.indexOf(".")+2));
if(strNow.contains("0")){
strNow="";
}
str += strNow;
result = str;
}

}else{
//直接输出即可
result = str;
}
return result;
}
}

------解决方案--------------------
package com.tur.demo;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Hello {
    public static String match(String str) {
        Pattern pattern = Pattern.compile("(\\d*)(\\.\\d)?");
        Matcher matcher = pattern.matcher(str);