【问题标题】:Getting the unicode value of the first character in a string获取字符串中第一个字符的 unicode 值
【发布时间】:2016-12-05 17:24:03
【问题描述】:

我基本上被要求获取字符串的 Unicode 值,将其乘以 10% 并添加对象当前具有的任何级别。这令人沮丧,因为事实证明我的逻辑包括代码在内,但我仍然收到错误消息:预期: 但原为:。任何建议,也许这只是我必须在逻辑上做出的细微差别,尽管我相当肯定它是正确的。 注意 getLevel 方法,因为这是错误所在

public class PouchCreature implements Battleable {

private String name;
private int strength;
private int levelUps;
private int victoriesSinceLevelUp;

/**
 * Standard constructor.  levelUps and victoriesSinceLevelUp start at 0.
 * 
 * @param nameIn desired name for this PouchCreature
 * @param strengthIn starting strength for this PouchCreature
 */
public PouchCreature(String nameIn, int strengthIn) {
    this.name = nameIn;
    this.strength = strengthIn;
    this.levelUps = 0;
    this.victoriesSinceLevelUp = 0;
}


/**
 * Copy constructor.  
 * 
 * @param other reference to the existing object which is the basis of the new one
 */
public PouchCreature(PouchCreature other) {
    this.name=other.name;
    this.strength=other.strength;
    this.levelUps=other.levelUps;
    this.victoriesSinceLevelUp=other.victoriesSinceLevelUp;
}


/**
 * Getter for skill level of the PouchCreature, which is based on the
 * first character of its name and the number of levelUps it has.
 * Specifically, the UNICODE value of the first character in its name
 * taken %10 plus the levelUps.
 * 
 * @return skill level of the PouchCreature
 */
public int getLevel() {
    int value = (int)((int)(getName().charAt(0)) * 0.1);
    return value + this.levelUps;
}

【问题讨论】:

    标签: java methods unicode logic getter


    【解决方案1】:

    你说过你应该增加 10% 的价值。但是,您实际上在做的是减少 90%,只取其中的 10%(然后将其截断为 int)。 67.0 * 0.1 = 6.7,当被截断为 int 时是 6

    0.1 更改为1.1增加 10%:

    int value = (int)((int)(getName().charAt(0)) * 1.1);
    // --------------------------------------------^
    

    如果getName() 返回"Centaur"(例如),则C 的Unicode 值为67,而value 最终为73

    【讨论】:

    • 我的错,它实际上告诉我们取模,但谢谢!
    【解决方案2】:

    我们需要查看您在调用该类时使用的代码以及生成错误消息的代码。为什么期待0?从您提供的信息来看,8 似乎是一个有效的返回值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-19
      • 1970-01-01
      • 1970-01-01
      • 2017-02-28
      • 2015-05-21
      • 2011-10-29
      • 2011-03-26
      • 2012-11-10
      相关资源
      最近更新 更多