运算符不能应用于java字符串

时间:2017-04-27 02:12:27

标签: java string

我正在编写一个程序,它从文本文件中获取贷款金额,利率和支付的总金额。它应该将利率更新为总利息,并且相同的总利息也是如此。然后它应该计算每月付款。

我不断得到错误操作符不能应用于java字符串进行计算,包括贷款。我猜这是因为你不能在计算中使用字符串?也许我错了。我很难过。

示例输入:

56750.00 .065 72.00
43675.00 .075 48.00
64950.00 .045 36.00
24799.00 .085 48.00 

我的代码

import java.io.*;
import java.util.*;
import java.text.*;

public class DB4
{
    static Scanner keyboard = new Scanner(System.in);

    public static void main(String[] args) throws FileNotFoundException
    {
        String loan;
        int Count = 0;
        double interest = 0;
        double Numberofmonths = 0;
        double totint;
        double totpay;
        double monthly;

        Scanner inFile= new Scanner(new FileReader("Project4InData.txt"));

        PrintWriter outFile = new PrintWriter("Project4.out");

        while (inFile.hasNext())
        {
            loan = inFile.next();
            interest = inFile.nextDouble();
            Numberofmonths = inFile.nextDouble();

            // calcs

            totint = interest * loan;

            totpay = totint + loan;

            monthly = loan / 12;

            outFile.print("Loan Amount: " + loan);
            outFile.print(" ");
            outFile.println("Interest: " + totint);
            outFile.print(" ");
            outFile.println("Total paid: " + totpay);
            outFile.print(" ");
            outFile.println("Monthly payment: " + monthly);
        }

        inFile.close();
        outFile.close();
    }
}

1 个答案:

答案 0 :(得分:2)

loan是一个字符串,因此interest * loan没有意义。

要了解为什么将*应用于字符串没有意义,请考虑"abc" * 2"def" * "ghi"的含义。 (绝对没有,这就是为什么Java不允许你在string个对象上执行这些操作的原因。)

可以+应用于字符串,但它不会添加,它会连接。

相同的逻辑适用于/运算符。

loan设为double