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));