JAVA将一个字符串的值转换成浮点型(double)数值

建一个类(DoubleConverter),该类的作用是将一个字符串的值转换成浮点型(double)数值。
要求:设计一个测试类来测试DoubleConverter。当测试类开始运行时,要求用户从键盘输入一个字符串,然后调用DoubleConverter的方法将字符串转换成为一个浮点型的数值。当用户输入的字符串不是浮点数时,该方法应该提示错误,并退出程序;否则返回该数值。
提示:把这两个类放在包内。不能使用Java内置的Integer类和Scanner类,而必须使用String类的charAt等方法提取每一个数字。
代码如下:

package DoubleConverter;

import java.util.Scanner;
/**
 * @author 芳芳
 */
public class test {
    private String result;


	public static void main(String[] args) {
        @SuppressWarnings("resource")
		Scanner input = new Scanner(System.in);
        System.out.println("please input a string:");
        String org = input.next();
        while (!isFloat(org)) {
            System.out.println("error occurred!");
            org = input.next();
        }
        boolean isSuccess;
        test doubleConverter = new test();
        isSuccess = doubleConverter.convert(org);
        if (isSuccess){
            System.out.println("the result is:"+ doubleConverter.result);
        }
    }

    private boolean convert(String org) {
		// TODO 自动生成的方法存根
		return false;
	}

	public static boolean isFloat(String org){
        char charArray[] = org.toCharArray();
        int figureNum = 0;
        int pointNum = 0;
        for(int i = 0;i < org.length();i++){
            if(charArray[i] == '.'){
                pointNum++;
            }
            if(charArray[i] <= '9' && charArray[i] >= '0'){
                figureNum++;
            }
            if(pointNum == 1 && figureNum + pointNum == org.length()){
                return true;
            }
        }
        return false;
    }


	public class DoubleConverter{
	    double result = 0;
	    public boolean convert(String org){
	        int pointPosition = org.indexOf('.');
	        pointPosition--;
	        for(int i = 0;i < org.length();i++){
	            if(org.charAt(i) == '.') continue;
	            result = result + Math.pow(10,pointPosition)* Integer.parseInt(String.valueOf(org.charAt(i)));
	            pointPosition--;
	        }
	        return  true;
	    }
	}
}
发布了7 篇原创文章 · 获赞 1 · 访问量 362

猜你喜欢

转载自blog.csdn.net/akie_384/article/details/104093008