Java:toString错误“错误:不兼容的类型:int无法转换为String”

Pai*_*kes 4 java tostring

我只需要快速帮助我的toString. 这就涉及到打牌了。

public class Card
{
  //Data
  private int rank;
  private char rank2;
  private char suit;

  //more codes (constructor etc.)

  //toString
    public String toString ( )
    {
    if (rank == 11)
        rank2 = 'J';
    else if (rank == 12)
        rank2 = 'Q';
    else if (rank == 13)
        rank2 = 'K';
    else if (rank == 14)
        rank2 = 'A';
    else
        return rank2 + suit; // <----error here.
    }
Run Code Online (Sandbox Code Playgroud)

我正在尝试弄清楚如何返回等级和花色。例如,如果有人输入 11 表示等级,“S”表示花色,那么我应该返回 JS。但是,我遇到了一个错误:

“错误:类型不兼容:int 无法转换为 String”

Zam*_*ara 5

在爪哇,char类型被视为int. chartype支持算术运算,因此可以相加。因此,当您使用 + 运算符时,它会将它们的值相加。但由于chartype 和inttype 是不同的原始类型,因此它们对于算术运算是不兼容的。

如果您需要字符串连接,那么您需要将代码更改为:

return String.valueOf(rank2) + String.valueOf(suit); 
Run Code Online (Sandbox Code Playgroud)


Sam*_*s33 5

将两个chars 加在一起实际上是将它们的 unicode 值相加并返回一个整数。如果您希望将它们连接在一起作为String,请执行以下操作:

return rank2 + "" + suit;
Run Code Online (Sandbox Code Playgroud)

这将形成 aString并附加到suit的末尾rank2。因此,如果rank2是“J”并且suit是“H”,则将返回“JH”。

  • “char”不是 ASCII 值。它是 Unicode/UTF-16 代码单元。 (2认同)