【发布时间】:2018-12-02 10:56:04
【问题描述】:
我已经阅读了很多关于这个问题的帖子,大多数似乎都可以通过修复 main 方法来解决。然而,部分任务是我们不能改变 NumPalDrvier。 由于我不完全理解,我还能如何解决这个问题?
这是给定的主要代码:
import javax.swing.JOptionPane;
public class NumPalDriver {
public static void main(String[] args){
String start = JOptionPane.showInputDialog("Enter a number: ");
System.out.println("start value ["+ start + "]");
NumPal p = new NumPal(start);
int ctr = 0;
while (!p.pal() && (ctr < 10)){
System.out.println(p.toString());
System.out.print("new sum: ");
System.out.println(p.getCur()+" + "+p.getRev()+ " = " +
(p.getCur()+p.getRev() ));
p = p.next();
ctr++;
}
System.out.println("final value: " + p.getCur());
System.out.println("number of steps: " + ctr);
}
}
我的代码使主要成为可能:
public class NumPal{ //header
private long numRev; //initializes variables
private long numCur;
private String stringRev;
private String stringCur;
public NumPal(String stringCur){//constructor
this.stringCur = stringCur;
}
public boolean pal(){
if (stringCur == stringRev){
return true;}
else {
return false;}
}
public String reverseString (String input){ //creates reverse version of string
int length = input.length();
String stringRev = "";
for(int j = 0; j <= length; j++){
stringRev = input.charAt(j) + stringRev;
}return stringRev;
}
public void next(){ //where the error is
stringRev = reverseString(stringCur);
numRev = Long.parseLong(stringRev);
numCur = Long.parseLong(stringCur);
numCur = numCur + numRev;
stringCur = Long.toString(numCur);
}
public String getCur(){ // returns current string
return stringCur;
}
public String getRev(){ // returns reverse string
return stringRev;
}
}
如果有人可以分解此错误的含义,将不胜感激!
【问题讨论】:
-
你能分享一个堆栈跟踪吗?
-
我试过谷歌搜索堆栈跟踪是什么,但我不太清楚该怎么做对不起。
标签: java constructor main