2017-03-26 5 views
-5

Ich erhalte die Fehlermeldung:Bad Operandentypen für binäre Operator ‚*‘

error: bad operand types for binary operator '*' 
if ((monthD * dayD).equals("yearD"))  
      ^
first type: String 
second type: String 

Der Punkt des Codes ist zu sehen, ob der Monat und das Datum des Jahres gleich, wenn multipliziert.

Hier ist mein Code:

// Month 
String monthD; 
System.out.print("What is the month? (For example, August would inserted as '08') "); 
monthD = userInput.nextLine(); 

// Day 
String dayD; 
System.out.print("What is the day? (For example, the 10th of the month is inserted as '10') "); 
dayD = userInput.nextLine(); 

// Year 
String yearD; 
System.out.print("What is the year? (For example, 1998 is inserted as '98') "); 
yearD = userInput.nextLine(); 

// Is this date magic? 
if ((monthD * dayD).equals("yearD")) 
{ 
    System.out.print("This date is magic!"); 
} 
else 
{ 
    System.out.print("This date is not magic!"); 
} 
+0

Warum Sie Ihre Eingabe als String lesen, wenn Sie int wollen? – Tom

+0

Ihre Logik ist auch falsch, zuerst überprüfen, was Sie vergleichen möchten. – Omore

+0

Ich versuchte Int und Double auch und es hat nicht funktioniert, das ist nur die letzte Option, die ich ausprobiert habe. Was soll ich sonst machen? – MadCodez

Antwort

0

Sie kippe haben String Datentypen für '*' (Multiplikation) Zwecke. Verwenden Sie stattdessen einen int Typ.

+0

Ich habe so viele verschiedene Variationen ausprobiert, String war nur der letzte, den ich ausprobiert habe. Was kann ich verwenden? – MadCodez

+0

use 'int' und in der 'if' Schleife, entfernen Sie die doppelte Anführungszeichen um den '.euals (yeard)' – Nish

+0

oder einfach " if (monthD * dayD == yeard) {verwenden .. .Ihr Code ...} else {... Ihr Code ...} " – Nish

0

Sie müssen Integer.parseInt(String) verwenden, um die Zeichenfolge in eine Ganzzahl zu konvertieren. Umgeben Sie mit try/catch, um nach nicht ganzzahligen Ganzzahlen zu suchen. Und was versuchen Sie auch zu tun, verwenden Sie einfach new Date() von java.util.Date das Datum zu bekommen

+0

Es tut mir leid, dass ich in meiner Klasse nicht so weit gekommen bin. Ich denke nicht, dass es so kompliziert sein muss, nichts für ungut . Ich muss nur sehen, ob der Monat x Tag = Jahr – MadCodez

+0

[Dies ist ein Kern, den ich gerade gemacht habe] (https://gist.github.com/rimidzkh/5c5a278941fbebe7d1221de878857ef4) – ramidzkh

Verwandte Themen