我对Java很新。在过去的几周里,我一直在努力教自己java。这主要是基于我在网上找到的教程和我能找到的论坛。所以请记住这一点,非常感谢您分享的任何其他批评!我目前正在尝试创建一个运行if-else循环的计算器。我正在开发一种方法,允许用户根据if
的原则派生一个函数f(x)=ax^n+bx^o+cx^p... then f'(x)=anx^n-1+box^o-1+cpx^p-1...
我尝试使用.split()
分隔函数的各个部分,对各个部分执行更改,然后将它们一起打印。我可以通过这个大部分方式,但我无法将带负号的字符串转换为整数,所以我试图调用一个使用.substring的方法,然后用replaceAll去掉负号然后转换到整数。但是,我一直在收到一个编译错误,指出 "实际和正式的参数列表的长度不同" 。任何人都可以解释为什么会发生这种情况吗?
import java.util.Scanner;
import java.util.Arrays;
import java.lang.String;
public class InputInteger
{
public String changeSign(String second) {
String negative = second.substring(0,1);
return negative;
}
public static void splitFunction() {
Scanner o = new Scanner(System.in);
String function = o.next();
String[] parts = function.split("(?=\\+|\\-)");
for (int i = 0; i < parts.length;) {
String[] second = parts[i].split("(?=[0-9]+|[a-z]+|[A-Z]+\\^)");
InputInteger.changeSign();
if (negative = ("-")) {
second = second.replace("-","");
int x = Integer.parseInt(second[0]);
int y = Integer.parseInt(second[2]);
int w = x*y;
int z = y-1;
System.out.println(w + "x^" + z);
i++;
}
}
}
答案 0 :(得分:0)
changeSign(String second)
应定义为static
negative
变量未定义equals()
方法.replace(...)
这些只是编译错误,我看到至少有一个运行时问题:
i
中增加if
,这可能会导致无限期
环... 我建议您使用一些好的IDE,如Eclipse或IntelliJ IDEA,这将帮助您处理警告/错误/等。
答案 1 :(得分:0)
您正在谈论的问题是方法不起作用。你必须在函数中传递参数,如
InputInteger.changeSign(function);
或
InputInteger.changeSign(second[i]);
根据要求
答案 2 :(得分:0)
首先,在您的代码if (negative = ("-"))
中,您有一个&#34; =&#34;我认为你打算使用&#34; ==&#34;为了比较。其次,方法parseInt()以及valueOf()(我更喜欢parseInt())应该处理负数就好了。没有必要删除&#34; - &#34;。 Yout方法changeSign()接受String参数,也是您的方法ChangeSign()返回String值,您必须将结果分配给某些字符串:String negative = InputInteger.changeSign(str);
。另外,String类还有一个方法startsWith(String prefix),它更适合你的substring()。希望这可以帮助。如果有的话,有一个开源库提供了一个实用程序,用于将String解析为Integer(以及其他内容)。在那个util中有一个方法
parseStringToInt(String numStr, int defaultValue,
String nullOrEmptyStringErrorMessage, String numberFormatErrorMessage)
尝试将String解析为Integer,如果不成功,则返回默认值,并且不会抛出异常。对于负整数,该方法绝对可以正常工作。以下是有关该库的文章的链接。https://www.linkedin.com/pulse/open-source-java-library-some-useful-utilities-michael-gantman?trk=pulse_spock-articles。在那里,您将找到有关从何处获取库的说明,包括javadoc和源代码。