我在理解每个
之后的类型时遇到了一些问题 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));
}}
答案 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"));