这些类型转换的结果是什么?为什么?

时间:2014-02-20 10:17:34

标签: java casting type-conversion primitive-types

我在理解每个

之后的类型时遇到了一些问题
 System.out.println(); 

这个Java代码中的行。 现在我在第4行遇到错误而其余代码没有运行,可以确定是什么问题? 有人可以向我解释结果是什么类型的,为什么?我想你甚至不必运行代码,它只是要求一些基本的Java知识,我没有:( 根据我的理解

         System.out.println ((1<<1) << 2);

提供8 ...但是又一次,为什么?

    public static void main(String[] args) {
    String[] s= {"a", "2.0", "3", "eip"};
    System.out.println (s[7/3]);
    System.out.println (Integer.parseInt(s[1])*3.0f);
    System.out.println ((1<<1) << 2);
    System.out.println (s[s.length-1].equals("EIP"));
    System.out.println (Double.parseDouble(s[2]+1) == Integer.parseInt(s[1]));
    System.out.println (1==0|| ! (false & !true));
    }}  

2 个答案:

答案 0 :(得分:0)

s[1] ==&gt; 2.0

2.0是十进制/双精度因此无法使用int转换为Integer.parseInt(s[1])

您需要Double.parseDouble(s[1])

(1<<1) << 2使用移位运算符。在这里研究这个Bitwise and Bit Shift Operators

答案 1 :(得分:0)

对于

System.out.println ((1<<1) << 2);

请尝试使用此link进行左移解释。

而不是:

System.out.println (s[s.length-1].equals("EIP"));

尝试:

System.out.println (s[s.length-1].equalsIgnoreCase("EIP"));
相关问题