繁体   English   中英

将字符串转换为Java类型

[英]Converting string to java type

我有以下代码,我需要将我的字符串o1和o2(由用户输入)转换为Fraction类f1和f2。 我不确定如何执行此操作,我们将不胜感激!

更新:Setter和Getters已经到位,我只在这里粘贴了代码的相关方面。 一切正常,但我不知道如何为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));      
}

如果我正确理解...

第一步:在斜线处拆分

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 ,则它会中断。 另外,我没有进行编译以对其进行测试,因此其中可能隐藏一两个语法错误,但这是基本思想。

您可以基于'/'分隔字符串,并按如下所示设置Fraction类的分母属性的分子值:

        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的属性,创建和设置与上面的代码值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM