2016-04-22 6 views
0

私は本当に助けが必要です、私はプログラミングに慣れています。私のコードを実行するたびに、この問題が発生します。Conversion = ' - '。ここでスレッド "main"のJava例外java.util.UnknownFormatConversionException:Conversion = ' - '

はコードです:

彼女は、製品

public abstract class Product implements Comparable<Product>, Serializable{ 
private Discount dR; 
private String description; 
private double price; 
private int numInStock; 
private Date releaseDate; 
private int rating; 

public Product() { 

} 

そして、ここのコードです。ここのdR

public class Discount { 
private Product pro; 
private Customer cust; 
private double price; 
private int quantity; 
private double getDiscount; 
private char discountRate; 

public Discount() { 
    super(); 
} 



public String toStringD() { 
    NumberFormat nf = NumberFormat.getCurrencyInstance(); 
    String string; 

    string = "ALL PRODUCT SOLD"; 

    string = string + String.format("%-35s %-20d", description, dR.getQuantity()) + 
      "\t\t" + nf.format(price) + "\t" + String.format("%-15f %-15d", dR.getPrice(), releaseDate); 
    return string; 
} 

での割引のためのコードは、問題

です
java.util.UnknownFormatConversionException: Conversion = '-' 
+0

連結と書式設定、そうですか? 'str + String.format(" fmt "、arg1、arg2)'は 'String.format("%sfmt "、str、arg1、arg2)'のように効率的に書くことができます。 –

+0

最初に左揃えしないで文字列を印刷してから、書式設定を心配してください –

+0

すべての正しい値をコピーしたとは思わない...「releaseDate」はDiscountクラスからは印刷できません –

答えて

0

j ava.util.UnknownFormatConversionException:変換=「 - 」あなたは、文字列の中で宣言1、すなわち異なる種類使用して文字列をフォーマットしようとすると、

がスローされた:%d、%Fをなど

これを裏付けるために、私は自分のメソッドを実行して、正しいタイプのハードコードされたパラメータの文字列フォーマット関数のパラメータを変更します。

私は問題なくあなたの方法を実行することができました。

したがって、いずれか:

1) "description"は文字列ではありません。 2)dR.getQuantity()は、float型またはその他の非整数型を返します。 3)dr.getPrice()はfloatを返しません 4)releaseDateは整数を返しません。

コードの残りの部分を提供していないため、これらのうちのどれが問題を引き起こしているのかを正確には説明できませんが、この情報では問題を引き起こす変数を追跡できます。

関連する問題