布尔数组值比较
Boolean Array Value Comparison
我必须使用 isPalindrom() 方法比较数组中的布尔值。如果数组是或不是回文,我无法让我的程序准确 return 答案。当我故意使用非回文答案时,它总是 returns true 而不是 false。
代码:
public Boolean isPalindrome()
{
Boolean result = true;
for(int i=0;i<bits.length;i++)
{
Boolean a = bits[i];
Boolean b = bits[bits.length - i - 1];
if(a!=b)
result = false;
}
return result;
}
对于 (a) 和 (b),也许使用 Integer 类型(如果值都是数字)比 boolean 更好?
public Boolean isPalindrome()
{
Boolean result = true;
for(int i=0;i<bits.length;i++)
{
int a = bits[i];
int b = bits[bits.length - i - 1];
if(a!=b)
return false;
}
return true;
}
而不是 != 使用下面的代码
if (!(a.Equals(b)))
希望有用。
该方法看起来是正确的,即使它不是 optimized/efficient 方法。对于回文测试,它应该 return 是正确的 true/false。您能否提供您正在测试的输入集?
试试下面的代码:
public class TestC {
public static void main(String[] args) {
Boolean[] bits = { Boolean.FALSE, Boolean.TRUE, Boolean.FALSE,
Boolean.FALSE };
Boolean[] bits1 = { Boolean.TRUE, Boolean.TRUE, Boolean.TRUE,
Boolean.TRUE };
Boolean[] bits2 = { Boolean.FALSE, Boolean.TRUE, Boolean.FALSE };
System.out.println(isPalindrome(bits));
System.out.println(isPalindrome(bits1));
System.out.println(isPalindrome(bits2));
}
public static Boolean isPalindrome(Boolean[] bits) {
Boolean result = true;
for (int i = 0; i < bits.length; i++) {
Boolean a = bits[i];
Boolean b = bits[bits.length - i - 1];
if (a != b)
result = false;
}
return result;
}
}
我必须使用 isPalindrom() 方法比较数组中的布尔值。如果数组是或不是回文,我无法让我的程序准确 return 答案。当我故意使用非回文答案时,它总是 returns true 而不是 false。 代码:
public Boolean isPalindrome()
{
Boolean result = true;
for(int i=0;i<bits.length;i++)
{
Boolean a = bits[i];
Boolean b = bits[bits.length - i - 1];
if(a!=b)
result = false;
}
return result;
}
对于 (a) 和 (b),也许使用 Integer 类型(如果值都是数字)比 boolean 更好?
public Boolean isPalindrome()
{
Boolean result = true;
for(int i=0;i<bits.length;i++)
{
int a = bits[i];
int b = bits[bits.length - i - 1];
if(a!=b)
return false;
}
return true;
}
而不是 != 使用下面的代码
if (!(a.Equals(b)))
希望有用。
该方法看起来是正确的,即使它不是 optimized/efficient 方法。对于回文测试,它应该 return 是正确的 true/false。您能否提供您正在测试的输入集?
试试下面的代码:
public class TestC {
public static void main(String[] args) {
Boolean[] bits = { Boolean.FALSE, Boolean.TRUE, Boolean.FALSE,
Boolean.FALSE };
Boolean[] bits1 = { Boolean.TRUE, Boolean.TRUE, Boolean.TRUE,
Boolean.TRUE };
Boolean[] bits2 = { Boolean.FALSE, Boolean.TRUE, Boolean.FALSE };
System.out.println(isPalindrome(bits));
System.out.println(isPalindrome(bits1));
System.out.println(isPalindrome(bits2));
}
public static Boolean isPalindrome(Boolean[] bits) {
Boolean result = true;
for (int i = 0; i < bits.length; i++) {
Boolean a = bits[i];
Boolean b = bits[bits.length - i - 1];
if (a != b)
result = false;
}
return result;
}
}