【发布时间】:2017-06-11 19:26:51
【问题描述】:
目前有一个程序有2个类,一个类用于main方法,另一个用于字符串。
Main 方法在下面,我试图调用 getString 方法,它只接受用户输入并存储为字符串。 getString 运行后,我还想运行 getReverse,它使用一个简短的算法来反转字符串,然后返回它。
public class main {
public static void main(String[] args)
{
ReverseString test1 = new ReverseString();
test1.getString();
test1.getReverse(inputString);
}
字符串类:
public class ReverseString {
public ReverseString()
{
}
public String getString()
{
String inputString = "";
Scanner keyboard = new Scanner(System.in);
System.out.print("Please enter string: ");
inputString = keyboard.nextLine();
return inputString;
}
public String getReverse(String inputString)
{
String temp = "";
for(int i = inputString.length(); i >= 0; i--)
{
temp = temp + inputString.charAt(i);
}
System.out.println(temp);
return temp;
}
程序正确地接受了一个字符串,但在第一个方法被调用后不会运行第二个方法。
【问题讨论】:
-
从学习变量、函数等基本编程知识开始。
-
除了由于 inputString 在方法 main 中未知而无法编译的问题。它将返回 IndexOutOfBounds,因为 String#length 给出了长度,而 String#charAt 适用于基于 0 的索引。
-
@Redlab 如果 inputString 是在 main 中而不是在类中定义的,它会更好吗?
-
查看@xenteros的答案
-
你一定是在开玩笑。您的代码已经包含几个示例,说明如何调用方法并将返回的结果分配给变量。顺便说一句,您可以像
return new StringBuilder(inputString).reverse().toString();一样简单地实现您的getReverse方法...