6

Javac を実行すると、比較できないデータ型の char と String が

while(responseChar == "y")

このエラーを修正するために何を変更すればよいかわかりません

import java.util.Scanner;
public class UseOrder
{
public static void main(String[] args)
{

    int answer, num, q;
    String name, response;
    double p;
    char responseChar;
    Scanner keyboard = new Scanner(System.in);

    Order order1 = new Order();
    order1.setCustomerName();
    order1.setCustomerNum();
    order1.setQuantity();
    order1.setUnitPrice();
    order1.computePrice();
    order1.displayInfo();

    keyboard.nextLine(); 
    System.out.println("Do you need the shipping and handling service?");
    System.out.println("Enter y or n :");
    response = keyboard.nextLine();
    responseChar = response.charAt(0);
    while(responseChar == "y")
    {
        ShippedOrder order2 = new ShippedOrder();
        order2.getCustomerName();
        order2.getCustomerNum();
        order2.getQuantity();
        order2.getUnitPrice();
        order2.computePrice();
        order2.displayInfo();
    }
}
}
4

3 に答える 3

20

文字リテラルを定義するには、一重引用符を使用します: '. 二重引用符は文字列リテラルを定義します。

while(responseChar == 'y')
于 2012-08-18T14:43:09.300 に答える
3

必要に応じて、大きな C クラスを使用して、次Characterのように変換できます。charString

String converted = Character.toString(responseChar); 
while(converted.equalsIgnoreCase("y"))
{
  // ...
}

しかし、このバージョンは、Jeffrey によって提案された文字通りの比較よりもはるかに冗長です。

于 2012-08-18T14:46:01.340 に答える
1

"y"これを行う代わりに'y'""文字列を表します。

于 2012-08-18T14:44:09.800 に答える