Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 这个if语句有什么错?_Java - Fatal编程技术网

Java 这个if语句有什么错?

Java 这个if语句有什么错?,java,Java,守则: // message is a string , a1 is an integer array .. both well defined if(Integer.parseInt(Character.toString(message.charAt(i))) == (a1[i - 1] + a1[i])) { ... } 1过多的)位于charAt的末尾,这将关闭if条件。除了语法错误外: 太复杂了。使用局部变量计算中间结果 使用Character.getNumericVa

守则:

// message is a string , a1 is an integer array .. both well defined
if(Integer.parseInt(Character.toString(message.charAt(i))) == (a1[i - 1] + a1[i])) {
    ...
    }

1过多的
位于
charAt
的末尾,这将关闭if条件。

除了语法错误外:

  • 太复杂了。使用局部变量计算中间结果

  • 使用
    Character.getNumericValue(ch)
    代替
    Integer.parseInt(Character.toString(ch))


  • 什么是
    i
    ?如果它是
    0
    a1[i-1]
    将抛出异常。

    请在每行前面放置四个空格,或者选择它并按下编辑器中的“101010”按钮来格式化代码。C:\Users\Dhruv\Desktop\Topcoder>javac*.java BinaryCode.java:29:If(Integer.parseInt)表达式的非法开始(Character.toString(message.charAt(i))==(a2[i-1]+a2[i])^BinaryCode.java:29:';'如果(Integer.parseInt(Character.toString(message.charAt(i)))=(a2[i-1]+a2[i]),您至少可以发布消息和a1的定义吗?
    ^
    指向什么点?javac错误消息和注释不太合拍。@D.J.问题中的代码和注释中的代码是不同的。如果你没有提供真正的代码,你希望人们如何发现你的语法错误???真正的问题是if条件太复杂了。通过将这些部分提取到有意义的变量中,它将更易于阅读,并且可能不会成为问题。例如,“a1[i-1]+a1[i]”是什么意思?假设它是期望和,然后将其分配给变量int expectedSum。因此,最终,这个if条件可能看起来像“if(extractedNumber==expectedSum)”,这对眼睛更友好,更容易阅读。正如markali所指出的,代码可读性不强,不可读的代码可能会出现这种问题。不要试图编写这样的代码,因为假定将这些表达式中的一些赋值给变量会降低程序的速度。它不会发生。如果它是=a1.length,则提供的代码也会引发异常。@SM-这是真的,但循环通常是从
    0
    a.length-1