2个简单的Java问题

时间:2015-01-21 09:04:53

标签: java

第一个问题:我试图以相反的顺序打印出四个双值,所以如果用户输入" 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

4 个答案:

答案 0 :(得分:9)

找到问题的答案/提示。

  1. 您必须以相反的顺序打印数组的内容。

    for (int i = dblValues.length -1;i >= 0; i--) {
        System.out.println(dblValues[i]);
    }
    

    这是初学者的基本方式。他们是一些预先设定的图书馆来完成这项工作

  2. 您可以使用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