第一个问题:我试图以相反的顺序打印出四个双值,所以如果用户输入" 1 2 3 4"我希望它打印出来" 4 3 2 1"这是我的编码。
// User enters 4 float values here
System.out.println("Enter 4 float values");
inputValues2 = input.readLine();
String[] dblValues = inputValues2.split("\\s+");
第二个问题:我想打印出double值的整数部分。我想我正在尝试将double值转换为int。我尝试了这两种不同的方法,并为它们两者带来了错误。有任何想法吗??也许我应该对某个数字进行某种舍入?
int dblConvert = dblAverage.intValue(); // One way
int dblConvert = Integer.parseInt(dblAverage); // Second way
答案 0 :(得分:9)
找到问题的答案/提示。
您必须以相反的顺序打印数组的内容。
for (int i = dblValues.length -1;i >= 0; i--) {
System.out.println(dblValues[i]);
}
这是初学者的基本方式。他们是一些预先设定的图书馆来完成这项工作
int a = (int) Math.round(doubleVar);
答案 1 :(得分:0)
对于您的第二个问题:有Math.round()方法。然后,您需要将返回的long转换为safe way中的int。
答案 2 :(得分:0)
如果您不想以相反的顺序打印数字并自然订购,可以将它们添加到列表中并对其进行排序
如果你也不关心舍入,你可以投两个
String s = "4 3 2 1";
String[] split = s.split("\\s+");
List<Integer> numbers = new LinkedList<>();
for (String toAdd : split) {
numbers.add(Integer.parseInt(toAdd));
}
Collections.sort(numbers);
System.out.println(numbers);
System.out.println((int)45.7654);
答案 3 :(得分:0)
1。)从最后一个索引循环并在reverse order
中打印。
2。)使用Math.round()
获取int部分
public static void main(String[] arg) {
Scanner input = new Scanner(System.in);
System.out.println("Enter 4 float values");
String inputValues2 = input.nextLine();
String[] dblValues = inputValues2.split("\\s+");
System.out.println("Reverse order");
for (int i = dblValues.length - 1 ; i >= 0 ; i--) {
System.out.println(dblValues[i]);
}
System.out.println("int part ");
for (String s : dblValues) {
int a = Math.round(new Float(s));
System.out.println(a);
}
}
<强>输出强>
Enter 4 float values
12.4 23.5 34.5 45.3
Reverse order
45.3
34.5
23.5
12.4
int part
12
24
35
45