import java.util.Scanner;
public class Exercise{
public static void main(String args[])
{
String first,second;
int share1,share2;
float price1,price2;
Scanner input = new Scanner(System.in);
System.out.print("Please enter the type of the first investment: ");
first = input.nextLine();
System.out.print("Please enter the number of shares purchased: ");
share1 = input.nextInt();
System.out.print("Please enter the share price: ");
price1 = input.nextFloat();
System.out.println("\n\n");
input.nextLine();
System.out.print("Please enter the type of the second investment: ");
second = input.nextLine();
System.out.print("\nPlease enter the number of shares purchased: ");
share2 = input.nextInt();
System.out.print("Please enter the share price: ");
price2 = input.nextFloat();
System.out.println("=============================\n\t\tInvestment Detail\n=============================\n");
System.out.println("Investment Type # Shares Share Price\n-------------- -------- ----------\n");
String formatString = String.format("%-20s%-10d.4f\n%-20s%-10d.4f\n",first,share1,price1,second,share2,price2);
}
}
我希望代码之间的空格看起来不错。当我编译它们时 代码,它没有用。 请让我知道我应该纠正哪些代码才能得到我想要的结果。
编译时,我在下面遇到了这些错误。
这个问题是第一个问题。所以当我发布这些代码时,我不会遵循本网站注意到的规则。
Exception in thread "main" java.util.IllegalFormatConversionException:
d != java.lang.String
at java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:4302)
at java.util.Formatter$FormatSpecifier.printInteger(Formatter.java:2793)
at java.util.Formatter$FormatSpecifier.print(Formatter.java:2747)
at java.util.Formatter.format(Formatter.java:2520)
at java.util.Formatter.format(Formatter.java:2455)
at java.lang.String.format(String.java:2940)
at Exercise.main(Exercise.java:37)
答案 0 :(得分:0)
您的第四个格式说明符%-10d.4f正在将字符串转换为小数。您需要使用%s。
同样%-10d.4f是无效的格式说明符,因为它会打印' .4f'。
以下是一些可以帮助您的更多信息:https://dzone.com/articles/java-string-format-examples
希望这有帮助。