Java:我怎么知道char是否包含符号?

时间:2014-11-17 05:07:10

标签: java char character

我很少使用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?但这是否正确?

2 个答案:

答案 0 :(得分:0)

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

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

或者您可以将此检查包含在属于Node

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

并在需要时调用该方法

答案 1 :(得分:0)

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

  

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

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

private Character c = null;

此外,weight为0,因为

  

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

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