【问题标题】:What is the result of these type conversions and why?这些类型转换的结果是什么,为什么?
【发布时间】:2014-03-21 05:07:34
【问题描述】:

我在理解每个之后的类型时遇到了一些问题

 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));
    }}  

【问题讨论】:

  • 一个主题中有太多问题。一次问一个。

标签: java casting type-conversion primitive-types


【解决方案1】:

对于

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"));

【讨论】:

    【解决方案2】:

    s[1] == > 2.0

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

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

    (1&lt;&lt;1) &lt;&lt; 2 使用移位运算符。在这里学习Bitwise and Bit Shift Operators

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-06
      • 2016-04-02
      • 1970-01-01
      相关资源
      最近更新 更多