【问题标题】:Unexpected type error while running charAt in java在 java 中运行 charAt 时出现意外的类型错误
【发布时间】:2018-10-03 16:11:39
【问题描述】:

尝试在 java 中运行小程序时,出现以下错误:

HangmanSB.java:19: error: unexpected type
            if (sentence.charAt(i) = " "){
                               ^
  required: variable
  found:    value
1 error

我尝试阅读此网站上发布的类似问题的答案,但我似乎仍然无法理解如何修复程序给我的错误。

import java.util.Scanner;

class HangmanSB {

   public static void main(String[] args){

      Scanner keyboard = new Scanner(System.in);

      String sentence = keyboard.nextLine();

      int turns = keyboard.nextInt();

      for (int turnsLeft = turns; turnsLeft > 0; turnsLeft--){

         int length = sentence.length();

         for (int i = 0; i < length; i++){

            if (sentence.charAt(i) = " "){
               System.out.println(" ");
            }

            else {
               System.out.print("_");
            }
         }
      }
  }

}

【问题讨论】:

标签: java compiler-errors charat


【解决方案1】:

有两个错误:

public char charAt(int index) 方法返回char

你需要使用==而不是赋值运算符=

因此使用:

if (sentence.charAt(i) == ' '){
    System.out.println(" ");
}

【讨论】:

    【解决方案2】:
    if (sentence.charAt(i) == ' '){
    

    【讨论】:

    • 正确的解决方案,但最好解释一下为什么会这样解决,这样他们就可以学习和理解并避免将来出现问题
    【解决方案3】:

    你的错误在这里:

     if (sentence.charAt(i) = " ")
    

    改成这个

    if (sentence.charAt(i) == ' ')
    

    使用== 比较intchar

    【讨论】:

    • 如果这样做,我会收到以下错误: HangmanSB.java:19: error: incomparable types: char and String if (sentence.charAt(i) == " "){ ^ 1 error
    • 双引号也是错误的。需要是' '(一个字符)而不是" "(一个字符串)。
    【解决方案4】:

    有两种类型的错误=" "

    要比较 char 值,请使用 ' '==

    像这样:

    if (sentence.charAt(i) == ' ')
    

    【讨论】:

      猜你喜欢
      • 2016-06-02
      • 1970-01-01
      • 1970-01-01
      • 2021-10-14
      • 1970-01-01
      • 2018-12-29
      • 2017-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多