Java 字符中的数字
这个问题很简单,但它困扰了我很长时间 如果我想将一个数字作为字符存储在字符变量中,我可以只使用数字0到9,因为它们是在ASCII表中指定的。 但是如果我想存储大于9的数字,我不能直接这样做。 例如 这给了我一个错误,在第一行 有没有其他方法可以将大于9的数字存储到char变量中Java 字符中的数字,java,types,Java,Types,这个问题很简单,但它困扰了我很长时间 如果我想将一个数字作为字符存储在字符变量中,我可以只使用数字0到9,因为它们是在ASCII表中指定的。 但是如果我想存储大于9的数字,我不能直接这样做。 例如 这给了我一个错误,在第一行 有没有其他方法可以将大于9的数字存储到char变量中 先谢谢你 “19”不是字符。字符是单个字符 char ch=19; 可以将0到2^16-1之间的任何数字存储在char变量中。该值将表示某个单个字符 char ch=19; 请注意,数值为19的字符与“1”或“9”字
先谢谢你 “19”不是字符。字符是单个字符
char ch=19;
可以将0到2^16-1之间的任何数字存储在char变量中。该值将表示某个单个字符
char ch=19;
请注意,数值为19的字符与“1”或“9”字符都没有关系。字符有一个等效的整数,即其字符代码。在一个字符中最多可以存储2^16-1的值,但需要删除引号。只需将整数值赋给字符。在字符中存储用于计算的数字几乎总是一个坏主意。考虑这一点:
char a = 100;
char b = 52; // Output
System.out.println( b ); // 4
System.out.println( a - b ); // 48
char c = (char)(a - b);
System.out.println( c ); // 0
System.out.println( b - a ); // -48
char d = (char)(b - a);
System.out.println( d ); //
人们不会将数字存储在字符中:这是由于历史上或最近计划的发展,更好地称之为字符枚举:罗马字母、数字、特殊字符、希腊字母、西里尔字母、CJK符号等等,还有数学符号、变音符号、丁巴,。。。使用序数是因为计算机存储二进制数
char dig0 = '0'; // This stores the *character* we use as "zero". It has the ordinal 48.
char letA = 65; // The character in let is what we call "capital A".
用序号48到57存储数字“0”到“9”不是很好的计算基础。19是两个字符。请阅读关于数据类型的基本教程…“19”由两个字符“1”和“9”组成。不能在char变量中同时存储这两个变量。出于您的目的,最好使用int。为什么要使用char?char ch='19';甚至不应该编译。请阅读任何关于Java数据类型的基本教程或指南…但最好使用字节、短字符或int。使用字符会使人困惑。@laune根据使用情况,字符在这里是合适的。@这取决于您要存储的数字的大小。字符实际上是整数类型。它存储所讨论字符的16位Unicode整数值。除非您执行类似于ch-“0”的操作,否则涉及字符的计算并不是很好的编码方式。有int、short、long……错误。这是Java,不是一种原生的C语言。如果一个字符中最多存储127个值是错误的@1110101001@Qix哦,你指的是那个部分。那样的话,对不起,你是对的。java中的字符是2个字节。@1110101001真的!有点。。。它们也不是ASCII码;他们是UTF-16 IIRC。@Qix我同意这一点。然而,没有进一步澄清的评论是错误的,信息量不大。我已经编辑了我的答案。