Java 字符表示相等\不相等

Java 字符表示相等\不相等,java,char,Java,Char,我一直想知道如何和/或是否可以使用char来表示方程。请不要评论“你为什么要这么做” 示例: public static void main(String... args) { char equalitySign = '<'; boolean check = 5 equalitySign 10; } public static void main(String... args) { char equalitySign = '<'; bool

我一直想知道如何和/或是否可以使用
char
来表示方程。请不要评论“你为什么要这么做”

示例:

public static void main(String... args) {

    char equalitySign = '<';

    boolean check = 5 equalitySign 10;

} 
public static void main(String... args) {

    char equalitySign = '<';
    boolean check;

    if (equalitySign == '<' + '=') {
        check = 5 <= 10; 
        System.out.println("is 5 less than or equal to 10, " + check);
    } else if (equalitySign == '<') {
        check = 5 < 10; 
        System.out.println("5 is less than 10, " + check);
    } else if (equalitySign == '>') {
        check = 5 > 10; 
        System.out.println("5 is greater than 10, " + check);
    }

}
publicstaticvoidmain(字符串…参数){
字符相等符号='10;
System.out.println(“5大于10,”+检查);
}
}
谢谢

事实上:

char c1 = 'a';
char c2 = 'b';
System.out.println(c1 < c2); // This is print true
charc1='a';
字符c2='b';
系统输出打印Ln(c1
这是因为每个字符值都有一个对应的ASCII值。ASCII值是整数,根据定义是可比较的

ASCII表格可在此处找到:

“示例2”是您的选择。只需使用
if-else-if
而不是所有
if
语句或
switch-case
语句

注意-正如其中一位评论者所指出的,您可能希望使用
字符串
比较,因为您的一个操作符是“使用映射” 您可以有一个从字符串操作数到双函数的映射,从数字和数字到布尔值

然后可以使用给定的操作数作为键,使用引发异常的默认函数获取双函数

然后可以对参数调用函数并返回结果

示例代码 Java 9,但如果地图创建更改为不使用
Map.of

import java.util.Map;
导入java.util.function.BiFunction;
公开课范例{
@功能接口
接口操作扩展了双函数{}
公共静态最终映射处理程序=Map.of(
“>”,(p,q)->p>q,

“正如其他人所指出的,一张可能的比较地图也会起作用。 首先,我们需要一个接口来声明比较方法:

interface IntComparator { boolean compare(int left, int right); }
然后是可能比较的地图:

Map<String, IntComparator> comparisons = new HashMap<>();
comparisons.put("=", (l, r) -> { return l == r; });
comparisons.put("<", (l, r) -> { return l < r; });
Map comparations=newhashmap();
比较.put(“=”,(l,r)->{return l==r;});

comparations.put(“谢谢,但这不是我想要的。不是直接的,但是你可以用你的操作数和字符操作符构建一个
String
,然后。我不推荐这样做,但是
System.out.println(new-ScriptEngineManager().getEngineByName(“JavaScript”).eval(“5<10”))59≤'
@TomBlodget,你是想说
小于等于
的unicode字符可以使用吗?是的,如果使用
字符有好处,那么
'≤'可以表示与
相同的概念我明白了。它可能提供的一个优势是使用
开关盒
@StarCoder,您可能想知道这一点。是的,映射是您需要使用的基本数据结构之一。例如,使用HashMaps进行缓存确实可以加快代码速度。没问题,双功能位是Java 8中添加的新功能特性的一部分(双函数将2个值转换为1个值,如>,它将2个数字转换为布尔值)。谢谢,稍后我将对此进行检查。
Map<String, IntComparator> comparisons = new HashMap<>();
comparisons.put("=", (l, r) -> { return l == r; });
comparisons.put("<", (l, r) -> { return l < r; });
System.out.println(comparisons.get("=").compare(1, 2));
System.out.println(comparisons.get("<").compare(1, 2));