java - 处理错误 : badly formed character constant (expecting quote, 得到 h)

标签 java processing

我正在制作一个虚拟宠物游戏。在这个阶段,我已经加载了一个可以工作的保存文件,但是当我开始包含核心功能时,程序没有运行。

我发现了这个:Badly formed character (expecting quote, got I) ~ Processing 这让我认为这是我的加载函数的问题,但我是处理新手,不确定如何调试它。

Creature creature;
String data[];
boolean gameInfo[];
int tempData[];
boolean food;

void setup() {
  size(100,100);
  String data[] = loadStrings("save.txt");
  String[] tempData = split(data[0], ',');
  gameInfo = int(tempData);
  for (int i = 0; i < data.length; i++) { 
    creature = new Creature(gameInfo[0], gameInfo[1], gameInfo[2], gameInfo[3]);
  }
  food = false;
}

void draw() {
  creature.think(food);
}

//creature class

class Creature {
  boolean idle;
  int hungry;
  int age;
  int gender;
  int asleep;


  Creature(int gender, int age, int hungry, int asleep) {
    this.gender = gender;
    this.age = age;
    this.hungry = hungry;
    this.asleep = asleep;
    boolean idle = true;
  }
  void whatDo(boolean food) {
    println('whatdo');
    if (idle = true && hungry == true) {
      if (food == true) {
        creature.eat();
      }
      else 
        creature.ask();
    }
  }

  void ask() {
    if (hungry == true) {
      println("HUNGRY");
    }
  }
  void eat() {
    println("EAT");
    idle = false;
  }
}

最佳答案

嗯,正如您指向的链接所解释的那样,问题是单引号用于字符分配,因此它应该是两个单引号之间的字符,例如 'c' ,并且 println() 期望在双引号 "a string" 之间定义的字符串。只需将第 40 行中的 println('whatdo'); 替换为 println("whatdo"); (双引号)即可消除此错误。但修复后我遇到了其他错误。

关于java - 处理错误 : badly formed character constant (expecting quote, 得到 h),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15013130/

相关文章:

java - Double 数据类型不返回十进制值 (Java)

使用 JDBC 的 Java MySQL 查询

opencv - 可以将 OpenCV 与 Processing 和 Openframeworks 一起使用吗?

javascript - 处理Js远程pde URL

java - 使形状沿角度方向移动

java - java声音放大器方法

java - 参数文件上的 AS400 SQL 脚本返回

python - 从文本字符串创建表/csv

javascript - 为什么使用 `color` 设置像素颜色会产生如此糟糕的性能

java - 如何使用jsp View 检查某个用户是否创建了数据库项