将字符串转换为java类型

时间:2014-02-14 19:37:56

标签: java string class

我有以下代码,我需要转换我的字符串o1& o2(由用户输入)到Fraction类f1& F2。我不确定如何做到这一点,任何帮助将不胜感激!

更新:Setter和getter已经到位,我只在这里粘贴代码的相关方面。一切正常但我不知道如何为f1赋值(其值应为o1)。

private int numerator;
private int denominator;
public Fraction(){
    numerator = 0;
    denominator = 1;
}

public static void main(String[] args){
    String o1 = null;
    String o2 = null;

    Scanner scan = new Scanner(System.in);
    System.out.println("Input Operand 1, separate numerator and denominator by '/'.");
    o1 = scan.next();
    System.out.println("Input Operand 2, separate numerator and denominator by '/'.");
    o2 = scan.next();

    Fraction f1 = new Fraction();
    int n1 = f1.getNumerator();
    int d1 = f1.getDenominator();
    Fraction f2 = new Fraction();
    int n2 = f2.getNumerator();
    int d2 = f2.getDenominator();

    Fraction A = new Fraction(n1, d1);
    Fraction B = new Fraction(n2,d2);
    A.printF(add(A,B));
    A.printF(sub(A,B));
    A.printF(multiply(A,B));
    A.printF(divide(A,B));      
}

2 个答案:

答案 0 :(得分:3)

如果我理解正确......

第一步:在斜杠处分割

String[] o1Parts = o1.split("/");
String[] o2Parts = o2.split("/");

第二步:转换为int

int o1Numerator = Integer.parseInt(o1Parts[0]);
int o1Denominator = Integer.parseInt(o1Parts[1]);

int o2Numerator = Integer.parseInt(o2Parts[0]);
int o2Denominator = Integer.parseInt(o2Parts[1]);

第三步也是最后一步:创建Fraction对象

Fraction o1Fraction = new Fraction(o1Numerator, o1Denominator);
Fraction o2Fraction = new Fraction(o2Numerator, o2Denominator);

如果班级没有这个构造函数,只有setter:

Fraction o1Fraction = new Fraction();
o1Fraction.setNumerator(o1Numerator);
o1Fraction.setDenominator(o1Denominator);

Fraction o2Fraction = new Fraction();
o2Fraction.setNumerator(o2Numerator);
o2Fraction.setDenominator(o2Denominator);

注意事项

请注意,此代码不进行输入验证,因此如果您编写的内容不是number/number,它就会中断。另外,我没有编译来测试它,所以可能会有一两个语法错误隐藏在那里,但这是基本的想法。

答案 1 :(得分:1)

你可以根据'/'分隔字符串,并设置类Fraction的denomerator属性的分子值如下:

        String o1 = "10/5";
        Fraction f1 = new Fraction();
        f1.setNumerator(Integer.parseInt(o1.substring(0,o1.indexOf("/"))));
        f1.setDenomerator(Integer.parseInt(o1.substring(o1.indexOf("/")+1)));

我找不到属性的settergetter,创建它并使用上面的代码设置值。