gpt4 book ai didi

java - 我怎样才能获得返回?

转载 作者:行者123 更新时间:2023-12-01 09:06:42 24 4
gpt4 key购买 nike

我正在编写一个程序,该程序将读取一行整数,并将它们以相反的顺序打印在单独的行上。我已经编写了代码来实际实现它,但我一直不知道如何让它来测试它。当我运行代码并输入整数时,它就会停止运行。我怎样才能让它打印回来?我需要在某个地方使用 println 吗?这是到目前为止的代码。我已向测试器类添加了一个扫描仪以及一个分隔符。

分隔符类

import java.util.Scanner;


public class Separator {

public Separator(int initialValue){

value = initialValue;
while (initialValue / 10 == 0){
initialValue = initialValue / 10;
count++;
}
}

public void getValue(){
for (int i = 1; i <= count; i++){
System.out.println(value % 10);
value /= 10;
}
}

int count = 1;
int value;


}

测试人员类别

import java.util.Scanner;

class SeparatorTester {

public static void main(String[] args){

Scanner sc = new Scanner(System.in);
int userInput = sc.nextInt();
Separator s = new Separator(userInput);

}
}

最佳答案

main 方法中,您将一个数字读入 userInput,然后从中创建一个新的Separator,然后你什么都不做。这些操作都不会打印任何内容,这就是没有输出的原因。您可以添加此行来获取一些输出:

s.getValue();

但是你的程序实际上并不能运行。对于userInput = 123,程序输出3。我认为这不是您想要的。

I'm writing a program that will read in a line of integers and will print them out in reverse order on separate lines.

这听起来像是,如果用户在一行上输入 13 51 47,那么您希望以相反的顺序打印数字,每个数字都在单独的行上,如下所示:

47
51
13

要实现这一点,最简单的方法是使用堆栈,例如:

Scanner scanner = new Scanner("13 51 47");
ArrayDeque<Integer> stack = new ArrayDeque<>();
while (scanner.hasNextInt()) {
stack.push(scanner.nextInt());
}

while (!stack.isEmpty()) {
System.out.println(stack.pop());
}

另一方面,您的实现与您的描述相矛盾,看起来更像是您想要颠倒数字,例如,如果输入是 123,则您要打印 321。一个更简单的实现而不是您的 Separator 类可能是:

int reverse(int value) {
int work = 0;
while (value > 0) {
work *= 10;
work += value % 10;
value /= 10;
}
return work;
}

关于java - 我怎样才能获得返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41212998/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com