读书人

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

发布时间: 2013-07-01 12:33:04 作者: rapoo

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

读书人网 >J2SE开发

热点推荐