public static void main(String[] args) {
Scanner String = new Scanner(System.in);
System.out.print("Enter a String: ");
String Str1 =String.nextLine();
String input;
input = Str1;
char[] inputArray = input.toCharArray();
String[] lines = new String[input.length() / 2 + 1];
int i, u;
for (i = 0; i < input.length() / 2; i++) {
char begChar = inputArray[i];
char endChar = inputArray[input.length() - i - 1];
int spacesBefore = i;
int spacesAfter = i;
int spacesInBetween = input.length() - 2 - 2 * i;
String line = "";
for (u = 0; u< spacesBefore; u++) {
line += " ";
}
line += begChar;
for (u = 0; u < spacesInBetween; u++) {
line += " ";
}
line += endChar;
lines[i] = line;
}
if (input.length() % 2 != 0) {
String lastLine = "";
for (u = 0; u < input.length() / 2; u++) {
lastLine += " ";
}
lastLine += inputArray[input.length() / 2];
lines[input.length() / 2] = lastLine;
}
for (i = 0; i < lines.length && lines[i] != null; i++) {
System.out.println(lines[i]);
}
System.out.print("String Length: ");
System.out.println(Str1.length());}
这是我遇到代码问题的地方。 我试图打印用户输入的字符串是奇数还是偶数。使用Netbeans IDE,它一直告诉我,对于一元运算符来说,我有一个糟糕的操作数类型int!&#39;!&#39;。代码中的其他所有内容都在运行,因为它应该无法使其工作。
if ( !(Str1.length( ) %0x2))
System.out.println("The String is odd");
else
System.out.println("The String is even");
答案 0 :(得分:1)
!
是unary
否定运算符,需要单个boolean
操作数。因此,它无法应用于int
你应该改变
if ( !(Str1.length( ) %0x2))
System.out.println("The String is odd");
else
System.out.println("The String is even");
到此
if (Str1.length() %2 != 0){
System.out.println("The String is odd");
}
else{
System.out.println("The String is even");
}
!=
是检查两个操作数的值是否相等的运算符,如果值不相等则条件变为true。
答案 1 :(得分:0)
基本上你这样做:
if (Str1.length() %2 != 0)
答案 2 :(得分:0)
目前你正试图打电话给!使用%运算符产生整数结果的运算符,该运算符产生您当前看到的错误
if (!(Str1.length( ) % 0x2))
System.out.println("The String is odd");
else
System.out.println("The String is even");
你可以做的是其他人的建议。这是有效的,因为您将使用%运算符的结果与产生布尔结果的2进行比较。因此,if语句可以对其进行评估并确定它为true或false。随着添加!运算符可以反转括号内表达式的结果。
if (!(Str1.length( ) % 2 != 0))
System.out.println("The String is odd");
else
System.out.println("The String is even");