首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java方法,完成如下的转换要求

2013-07-01 
求一个java方法,完成如下的转换要求package testpublic class Testzero {public static void main(String

求一个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);



        String result = null;

        while (matcher.find()) {
            result = matcher.group(0);
            result = result.startsWith(".") ? "0" + result : result;
            break;
        }

        return result;
    }

    public static void main(String[] args) {
        String[] strs = {"2.0", "2.00", "2.000", ".333", "001", "0001"};

        for (int i = 0; i < strs.length; ++i) {
            System.out.println(match(strs[i]));
        }
    }
}


2.0
2.0
2.0
0.3
001
0001

热点排行