好吧,我已经做了这个简单的开始,但我想不出一种方法来反转整数的用户输入。
我的开始:
public static void main(String[] args) {
try {
Scanner console = new Scanner (System.in);
System.out.println("> ");
String input = console.nextLine();
while (! input.equals("quit")){
System.out.println();
System.out.print("> ");
input = console.next();
}
}catch (Exception e){
System.out.println("Error: Invalid Input");
}
System.out.println("Bye!");
}
所以,我希望用户输入如10 15 40 100 3400变为3400 100 40 15 10.我知道这是在某处使用array.tostring,但我不知道在哪里以及如何。
答案 0 :(得分:2)
将每个输入存储在List<String>
中,并在阵列上以相反的顺序迭代输出。
这是您的初始main()
的转换版本。
public static void main(String[] args) {
List<String> out = new ArrayList<String>();
try {
Scanner console = new Scanner (System.in);
System.out.println("> ");
String input = console.nextLine();
out.add(input);
while (!input.equals("quit")){
input = console.next();
out.add(input);
}
}catch (Exception e){
System.out.println("Error: Invalid Input");
}
for(int i = out.size() - 1; i >=0; i--){
System.out.println(out.get(i));
}
System.out.println("Bye!");
}
答案 1 :(得分:1)
像这样......
String myNum = "10 15 40 100 3400";
String[] numbers = myNum.split(" ");
List<String> myList = Arrays.asList(numbers);
Collections.reverse(myList); // myList will has 3400 100 40 15 10
答案 2 :(得分:1)
将inputs
添加到ArrayList
,然后使用反向命令。
ArrayList<int> aList = new ArrayList<int>();
添加
aList.add(input);
要反转
Collections.reverse(aList);
答案 3 :(得分:1)
public static void main(String args[])
{
Integer[] ints = {10, 20, 5, 55}; // Get the input from user and for an Integer array
List<Integer> integers= Arrays.asList(ints);
Collections.reverse(integers);
System.out.println(integers);
}
输出:
[55, 5, 20, 10]
答案 4 :(得分:0)
对于这个问题,我将做一些假设:
a)您知道所有输入都是整数
b)你不需要用整数做任何东西,只需打印它们(即:算术)
c)您只想撤销订单,而不是任何其他类型的订单
d)你的整数总是以空格分隔
如果假设B正确
由于您是以字符串形式读取输入,并且由于您的示例使用空格分隔值,因此您需要
1)分开输入和
2)单独打印(按相反顺序)
因此,要做第一点,您可以使用字符串实用程序根据字符分隔字符串。 How to split a string。如果您不熟悉数组,则引用here。
它看起来像。
String input = console.nextLine();
String[] inputArray = input.split(" ");
此时,inputArray看起来像{"10", "15", "40", "100", "3400"}
。
现在您只需要一种以相反顺序显示每种方法的方法。一个简单的方法是使用for loop,因为您可以指导它,并且您知道它将执行多少次。由于您希望以相反的顺序打印,因此您将从最后开始并一直工作。像这样:
for (int i = inputArray.length - 1; i >= 0; i--) {
然后简单地打印出数组的元素,使你的循环看起来如此:
for (int i = inputArray.length - 1; i >= 0; i--) {
System.out.println(inputArray[i]);
}
如果B组不正确
这意味着您需要以某种方式使用整数。这将简单地向前一个过程添加一步(即“如果假设B是正确的”),您将字符串转换(“解析”)为整数。所以从上一节的代码开始:
String input = console.nextLine();
String[] inputArray = input.split(" ");
for (int i = inputArray.length - 1; i >= 0; i--) {
System.out.println(inputArray[i]);
}
我们首先想要创建一个用于保存整数的结构,然后我们要将每个字符串放入整数数组中。我们使用static Integer.valueOf(String input)
方法执行此操作。
String input = console.nextLine();
String[] inputArray = input.split(" ");
// Array to hold integer values
int[] inputIntArray = new int[inputArray.length];
for (int i = 0; i < inputIntArray.length; i++) {
inputIntArray[i] = Integer.valueOf(inputArray[i]);
}
for (int i = inputIntArray.length - 1; i >= 0; i--) {
// Do whatever operations you want here
System.out.println(inputIntArray[i]);
}
然后你应该好。