【问题标题】:Java: How do I know if char consist of a symbol?Java:我如何知道 char 是否由符号组成?
【发布时间】:2015-01-13 23:07:47
【问题描述】:

我很少使用 char,今天在尝试编写项目代码时,我陷入了一些概念。 在我的节点类中

public class Node {
private char c;
private int weight;
private Node leftChild, rightChild;

public Node(char a, int f) {
    c = a;
    freq = f;
}

public Node() {

}

// and all the getters setters

所以每当我使用默认构造函数时,我的 char c 的值是多少?以及如何检查我的节点是否包含其他班级的符号?真的不知道所以无法提供我尝试过的东西......我只检查c是否为空或c长度是否为0?但这是否正确?

【问题讨论】:

  • 如何定义默认构造函数?
  • c 和所有成员字段一样,默认初始化为 0。 “符号”是什么意思?
  • 另外,您的代码中已经定义了一个默认构造函数。你定义正确。

标签: java char character


【解决方案1】:

当您使用默认/空构造函数时,您的 char 值为 '\u0000'(空字符)'0'。如果您永远不需要存储空字符,您可以随时通过

检查您的类是否具有此值
leftChild.c == '\u0000'

或者您可以将此检查包装在属于 Node 的方法中

public boolean hasCharacter(){
     return this.c != '\u000000'
}

并在需要时调用该方法

【讨论】:

    【解决方案2】:

    在 Java 中,char 是原始类型。并根据JLS-4.12.5 Initial Values of Variables

    对于char类型,默认值为null字符,即'\u0000'

    您也可以使用Character 对象包装器。作为Object,它没有默认值。但可以分配给nulllike

    private Character c = null;
    

    另外,weight 是 0,因为

    对于int类型,默认值为0,即0。

    除了你的构造函数之外,你不会向我们展示freq

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-19
      • 1970-01-01
      • 2016-12-10
      • 1970-01-01
      相关资源
      最近更新 更多