我目前有以下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
}
}
我在这部分收到错误:
if (user.charAt(counter) = "")
错误是
作业的左侧必须是变量。
我将其更改为“==”,但现在又出现了另一个错误:
左子句“char”的类型与右子句“java.lang.String”的类型不兼容。
我该如何解决这个问题?
谢谢!
答案 0 :(得分:7)
所以,之所以
if (user.charAt(counter) = "")
给出的错误是“=”是java中的赋值运算符,因此左侧必须是变量。话虽这么说,你可能真的想要
if (user.charAt(counter) == ' ')
使用比较运算符(==)和空格字符('')。 (“”是一个空字符串)
答案 1 :(得分:2)
您在比较运算符上使用了对齐方式。
更改
if (user.charAt(counter) = "")
到
if (user.charAt(counter) == "")
更新:
您再次比较时也会出错。
您还应该使用single quotes ( ' )
来比较char
,否则它将无法编译。
if (user.charAt(counter) == '')
但是这也不会被编译为零长度char未定义 你应该比较一个有效的字符,比如说' space 。
答案 2 :(得分:1)
您希望使用等于运算符==
,而不是赋值运算符=
。
答案 3 :(得分:1)
“==”将确保右侧的值与左侧的变量相同。
“=”是一个赋值运算符,用于给变量赋值,而不是比较它。
答案 4 :(得分:0)
我的代码中出现了同样的错误。添加括号解决了该错误
从
更改if(isNotNullorEmpty(operator))
ArrayList<String> result = getOperatorAndTypeforName(name );
到
if(isNotNullorEmpty(operator)){
ArrayList<String> result = getOperatorAndTypeforName(name );
}