Java调用charAt时出现Unexpected type错误,求修复方案
解决你的Java小程序错误
嗨,我一眼就瞅到问题出在哪啦,你的代码里有两个小细节出错,才导致了这个编译失败:
错误原因拆解
- 搞混了赋值和比较运算符:你写的
=是赋值运算符,用来给变量赋值的,但这里你要做的是判断是否相等,得用比较运算符==才行。 - 字符与字符串类型不匹配:
sentence.charAt(i)返回的是char类型的单个字符,而你用了双引号包裹的字符串" "来比较,Java里这俩类型没法直接这么对比,得换成单引号包裹的字符字面量' '。
修正后的代码行
把出错的那行代码改成这样就没问题啦:
if (sentence.charAt(i) == ' ') {
再给你唠明白为啥:
- 用
=的话,你是在尝试把字符串" "赋值给sentence.charAt(i),但charAt()返回的是一个只读的字符值,不是可以被赋值的变量,所以编译器才会报错“required: variable found: value”。 - 换成
== ' '之后,就是在判断当前位置的字符是不是空格字符,类型匹配了,逻辑也完全正确。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

