Ik heb momenteel de volgende code voor Java.
public class lesson8
{
static Console c; // The output console
public static void main (String[] args)
{
c = new Console ();
String user;
int length, counter, spacecounter;
spacecounter=0;
c.print("Enter a string. ");
user = c.readLine();
length = (user.length()-1);
for (counter=0;counter<length;counter++)
{
if (user.charAt(counter) = "")
{
spacecounter++;
}
}
c.println("There are "+spacecounter+" spaces in your string.");
c.println("There are "+counter+" characters in your string.");
// Place your program here. 'c' is the output console
// main method
}
}
Ik krijg een foutmelding over dit deel:
if (user.charAt(counter) = "")
De fout is
De linkerkant van een opdracht moet een variabele zijn.
Ik heb het gewijzigd in “==”, maar nu krijg ik een andere foutmelding:
Het type van de linker sub-expressie “char” is niet compatibel met het type van de rechter sub-expressie “java.lang.String”.
Hoe zou ik dit oplossen?
Bedankt!
Antwoord 1, autoriteit 100%
Dus de reden waarom
if (user.charAt(counter) = "")
geeft die fout is dat “=” een toewijzingsoperator is in java, en dus moet de linkerkant een variabele zijn. Dat gezegd hebbende, wil je waarschijnlijk eigenlijk
if (user.charAt(counter) == ' ')
die de vergelijkingsoperator (==) en het spatieteken (‘ ‘) gebruikt. (“” is een lege string)
Antwoord 2, autoriteit 29%
U gebruikt een toewijzing in plaats van een vergelijkingsoperator.
Wijzigen
if (user.charAt(counter) = "")
naar
if (user.charAt(counter) == "")
Bijwerken:
Je hebt ook weer een fout bij het vergelijken.
Je moet ook single quotes ( ' )
gebruiken om een char
te vergelijken, anders wordt het niet gecompileerd.
if (user.charAt(counter) == '')
Maar ook dit wordt niet gecompileerd omdat een teken met een lengte van nulniet is gedefinieerd.
Je zou een geldig teken moeten vergelijken, zeg ‘ ‘ voor spatie.
Antwoord 3, autoriteit 14%
U wilt de gelijkheidsoperator ==
gebruiken, niet de toewijzingsoperator =
.
Antwoord 4, autoriteit 14%
“==” gaat ervoor zorgen dat de waarde aan de rechterkant hetzelfde is als de variabele aan de linkerkant.
“=” is een toewijzingsoperator en wordt gebruikt om waarde aan de variabele te geven, in plaats van deze te vergelijken.
Antwoord 5
Ik kreeg dezelfde fout in mijn code. Door het toevoegen van haakjes is deze fout opgelost
Gewijzigd van
if(isNotNullorEmpty(operator))
ArrayList<String> result = getOperatorAndTypeforName(name );
naar
if(isNotNullorEmpty(operator)){
ArrayList<String> result = getOperatorAndTypeforName(name );
}