我需要一些Java帮助。如果int a = int,则返回true,如何编写布尔比较方法。它会是这样的:
public int checkIfEqual(int a, int b) {
if (int a = int b) {
return 1;
} else {
return -1;
}
}
答案 0 :(得分:3)
保持简单:
public boolean compare(int a, int b) {
return a == b;
}
我注意到你试图返回一个int
:Java ain&c; C,所以像0
这样的一些C成语是假的,非零是true
don& #39;用Java保存。
此外,这种方法比无用更糟糕,因为:
if (a == b)
的写入时间比if (compare(a, b))
if (a == b)
比if (compare(a, b))
compare()
实际上是一个保留字,因为它是Comparator
接口的(唯一)方法,一个非常常用的类compare
是一个糟糕的名字,因为之前的原因,但也因为equals
正是它真正做的并且是java惯例答案 1 :(得分:1)
正如@Bohemian所说,如果你只想测试两个int值是否相等:
public boolean equal(int a, int b) {
return a == b;
}
不要调用此方法compare
,因为名称compare
具有强大的内涵,用于测试Java中的排序。它应该是equal
还是equals
是值得商榷的。
(波希米亚关于上述方法无效的观点是适用的。)
这是实现int compare(int, int)
的正确比较方法应该看起来像 1 。
public int compare(int a, int b) {
if (a == b) {
return 0;
} else if (a < b) {
return -1;
} else {
return 1;
}
}
这与Comparator::compare(T, T)
的语义兼容。
我也不确定如何添加以下约束:
0≤a,b≤10000000
添加if
这样的语句:
if (a < 0 || b > 10000000) {
throw SomeException("some message");
}
其中SomeException
是您要抛出的异常,表示存在约束错误。
另外,我是否还需要创建一个实现比较器接口的检查器类?
检查器类应该实现Comparator
没有具体原因。只有在您的检查器需要使用作为比较器时才能执行此操作。
对于具有以下约束的字符串,它是否也会起作用:
1≤| a |,| b | ≤2000
此方法可用于约束字符串的长度。
1 - 向您展示代码比解释您的版本有什么问题更快。但是比较它们......你应该能够解决这个问题。
答案 2 :(得分:0)
这将是一个简单比较的工人阶级:
public int compare(int a, int b) {
if (a == b) {
return 0;
} else {
return -1;
}
}
对于每个其他比较,您需要添加它们
条件:
if (a >= 0 && b >= 0 && a <= 10000000 && b <= 10000000)
/* rest of the code */
和
absA = Math.abs(a);
absB = Math.abs(b);
if (absA >= 1 && absB >= 1 && absA <= 2000 && absB <= 2000)
/* rest of code */
答案 3 :(得分:-1)
我需要一些Java帮助以及如何编写一个布尔比较方法,如果int a = int b则返回true,否则返回false
a == b
a.Equals(b)(整数类)
b.Equals(a)(整数类)
a-b == 0
b-a == 0
我认为对于平等检查来说已经足够了。
现在为其他人检查...添加&amp;&amp;&amp;&amp; (a>x && a<y && b>x && b<y)
编辑:不要将int用作布尔值。这不是C(其中0为假,而且= = 0为真),bool是bool,int是int。