以下设置:
int a=3;
String b="3";
两个变量都表示在语义上相等的ID。由于该应用程序适用于移动设备,因此以尽可能最有效的方式对这些变量进行比较非常重要。
将这些变量与此片段进行比较是否有效,
boolean areEqual = Integer.parseInt(b) == a;
还是这个?
boolean areEqual = String.valueOf(a).equals(b);
答案 0 :(得分:4)
除非你进行数千次这样的比较,否则可能无关紧要。也就是说,如果你看一下每个陈述的作用:
boolean areEqual = Integer.parseInt(b) == a;
该语句解析String
值一次,然后对两个原始int
值进行极快速的比较。
boolean areEqual = String.valueOf(a).equals(b);
此语句处理String
一次以创建String
a
值,然后进行String
比较。更多步骤,更多内部逻辑,因此效率更低。
答案 1 :(得分:1)
代码的最低效率可能是在每次比较时在int和String之间进行转换。 在第一个位置获取数据时,只需将String从String转换为int即可。这样,您还可以确保任何错误消息立即传达给您的用户,例如:当他/她错误输入输入时。
答案 2 :(得分:1)
如果您确实知道该字符串包含数字,则最有效的方法可能是;
boolean areEqual = (a == (b.charAt(0) - '0'));