java中char类型是怎么进行比较的,也就是说在比较的时候是不是要转换成其他数据类型再比较呢?

public class Test2 {
public static void main(String[] args) {
char a='0';
char b='5';
char c='9';
if(a<b && b<c){
System.out.println("你好,我对了");
}else{
System.out.println("我错了");
}
}
}

char类型时,当是单个字符时时是可以用“==”比较的,但是当为字符串时则不可以,应用比较函数strcmp进行比较,strcmp函数在头文件"string.h"中,所以要用这个函数时前面还要包含这个头文件。

延展回答:

char是C/C++整型数据中比较古怪的一个,其它的如int/long/short等不指定signed/unsigned时都默认是signed,但char在标准中是unsigned,编译器可以实现为带符号的,也可以实现为不带符号的,有些编译器如pSOS的编译器,还可以通过编译开关来指定它是有符号数还是无符号数。

在MYSQL中,字段类型char是指:使用指定长度的固定长度表示的字符串;在excel中char函数用于返回对应发于数字代码的字符。其用法:=char(number)其中,参数number为转换的字符代码,介于0~255之间,char占一个字节,也就是8个二进制位,但它表示的是有符号的类型,所以表示的范围是-128~127;uchar表示无符号的类型,所以表示的范围是0~255。

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-15
char还是基本数据类型,比较的时候任然用==就行。只要是基本数据类型,比较内容都是用==就行。至于引用型,就压看具体的类有没有重写equals(Object)方法
比如你这样:
System.out.print('a'=='a');就知道了追问

那如果是 char c1='人' ;char c2='生' ,这种怎么比法???

追答

自然顺序,在java中char不在是用一个字节来表示了,是用2个字节,功16位,可以表示2^16这么多个不同的符号,为了和以前的ASCII码兼容,前面的都是ASCII,你可以用System.out.print((char)97);就知道了。char用的是Unicode,。
哎,你始终知道char是基本数据类型,什么事就okl了。

你试试这样就知道了。
System.out.println('人'=='生');
System.out.println((int)'人');
System.out.println((int)'生');
System.out.println((char)20154);
System.out.println((char)29983);

本回答被提问者采纳
第2个回答  推荐于2017-09-18
char 的范围是0~65535,既然是整数,就按照整数比即可。举个例子
char ch1 = 'a';
char ch2 = 'b';
System.out.println(ch1==ch2); // false
System.out.println(ch1!=ch2); // true
System.out.println(ch1<ch2); // true本回答被网友采纳
第3个回答  2012-11-29
不需要转换成其他类型,就是这样比较,应为char的范围为0-65535,包含在了int里,所以可以相当于int类型比较
第4个回答  2019-04-28
public class charTest {

static char c1 = 'a';
static char c2 = 'c';
public static void main(String[] args) {
System.out.println(c1==c2);
/*
 * 测试结果 false;
 */
System.out.println(c1>c2);
/*
 * 测试结果 false;
 */
System.out.println(c1<c2);
/*
 * 测试结果 true;
 */
}

}

相似回答