我在java中使用带字符串的开关{case()},到目前为止,它似乎工作得很好。但我想在继续太多之前确认一下;这安全吗?
我的意思是,我知道我不应该做if(“hi”==“hi”),而应该做“hi”。等于(“hi”),因为字符串指的是一个参考点。。。
我不太确定开关是如何工作的,我也无法从我的任何来源证实。。。
谢谢你!!
根据语言规范(我的重点):
如果其中一个case常量等于表达式的值,那么我们说case匹配,并且开关块中匹配case标签之后的所有语句(如果有)都按顺序执行。
这意味着使用等于
,而不是=
来评估开关情况。
问题内容: 我试图写将接受的方法,检查是否有某些记号的情况下(例如,,等),并更换每个令牌与新的字符串,它是从获取。 例如,如果我将此方法传递给以下字符串: “现在的$ {fizz}母牛如何。$ {buzz}的形状奇怪的$ {foo}。” 并且如果该方法参考了以下内容: 那么结果字符串将是: “现在是棕色的母牛。纵火犯的脚怪异。” 这是我的方法: 运行此命令时,出现以下异常: 我为什么得到这个?
我有一个12个月温度的文本文件。但是当我试图找到平均温度时,我得到的错误是“String conly be converty to int”(字符串不能转换为int temp[counter]=sc.nextline(); 有人能说出怎么了吗?
我试图从JSON字符串重新创建,一个包含枚举常量(JSON字符串的源)的集合。我很难弄清楚如何从字符串重新创建枚举。枚举包含我需要访问的各种方法。 我看到的这一个和这一个的答案产生了一个类,该类使您能够遍历常量,而不是重新创建原始枚举。我希望在其他现有类中传递枚举,而不必重写代码来处理新类。 这可能吗?您可以使用JSON字符串来帮助重新创建枚举,以便将其用作枚举吗? 编辑:奇怪的是,我有一个红色的
问题内容: 通过这个代码,我试图取代确切的词用。但是,如果运行此命令,它将仅在我希望打印时打印,这与包含它的单词不同。我怎样才能解决这个问题?谢谢 问题答案: 使用带有单词边界 的正则表达式: 边界符号的反斜杠必须转义,因此为双反斜杠。
null
问题内容: 我需要在检查的同时将以下更改为- ,以改善圈复杂度。 但是我不确定我将获得什么价值。 问题答案: Java(版本7之前的版本)在switch / case中不支持String。但是您可以通过使用枚举来达到预期的结果。