如何检查 id String 是不是为空,然后在 android studio 中定义一个默认值是不是为空
Posted
技术标签:
【中文标题】如何检查 id String 是不是为空,然后在 android studio 中定义一个默认值是不是为空【英文标题】:How to check id String is Empty then put a define a default value if is Empty in android studio如何检查 id String 是否为空,然后在 android studio 中定义一个默认值是否为空 【发布时间】:2021-03-31 07:09:43 【问题描述】:这是一个出租车应用程序,用户可以在其中获取驾驶员的旋转(方位) 与没有旋转(轴承)的设备一起工作良好 像这样 Here is the image
如果驱动设备不具备此功能,则用户将收到错误消息并导致应用崩溃
所以我的问题是如何通过检查 Sting 是否为空来避免这种情况 如果为空,我们必须为其设置一个默认值
这是我的代码
if (icondriver.equals("2"))
driverMarkers.add(
gMap.addMarker(new MarkerOptions()
.position(currentDriverPos)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.carmap))
.anchor((float) 0.5, (float) 0.5)
---------error line------------->> .rotation(Float.parseFloat(driver.getBearing()))
.flat(true)
)
这是获取字符串值的方法
public String getBearing()
return bearing;
这是错误
enter image description here
【问题讨论】:
【参考方案1】:public String getBearing()
String defaultValue = "0";
String result;
if(bearing == null || bearing.trim().isEmpty())
result = defaultValue;
else
result = bearing;
return result;
【讨论】:
我确实喜欢这种方法,但我认为提问者无法控制这部分代码。我可以建议对其进行编辑吗?另外,+1 我知道我们被告知的不仅仅是退货是不好的......但是你看看来自 google、android、apache 的 src ......每个人都成功了。所以:i.ibb.co/vYdLTp0/wee.png 你是对的,你的答案是完全正确的,但我想如果他不能修改这个方法,他可以在类中声明一个新方法,比如 getCorrectedBearing() 并在那里写条件以防止复杂性对于 SOLID :) 这样您不仅可以验证非空值,还可以返回修剪后的字符串。有了这个,OP 将不需要在其 Float.ParseFloat 方法中进行任何进一步的验证:)。我总是喜欢在必须使用变量之前验证变量,这就是我喜欢这种方法的原因。 +1 在调用标记创建之前在他的类中创建静态 String getCorrectedBearing() 方法,如果他不能直接控制 getBearing()【参考方案2】:这假设如果字符串为空,0
作为默认的空白值传递。还假设字符串永远不会是null
。
(...)
rotation(Float.parseFloat(driver.getBearing().trim().isEmpty()?"0":driver.getBearing()))
(...)
parseFloat
将自动 trim()
字符串。但是为了真正检查isEmpty
是否没有给出假阴性,修剪字符串可以保证只有空格的字符串不会被传递为有效。 String s = " ";
将返回false
,如果直接在其上调用isEmpty()
,则无需先进行trim()
操作。
所以,driver.getBearing().trim().isEmpty()?"0":driver.getBearing()
的条件说明了:
"0"
(或您想要的默认值)。
如果不是,则按原样传递字符串值 (driver.getBearing()
)。
【讨论】:
@NewHere 如果您有时间,请查看 saeedata 的答案。如果您可以控制那部分代码,那么验证字符串将比我的回答中提出的条件更清晰。如果您可以访问 getBearing(),这是一个更好的选择 然后您可以毫无顾忌地调用 rotation(Float.parseFloat(driver.getBearing()) ,因为它已经过验证(也经过空值检查) 是的,我做到了,它也有效(他忘记在“ if(bearing == null || bearing.trim().isEmpty())” 之后加上“”)如果有人想要试试看【参考方案3】:你可以使用 inline if -> bearing.isEmpty()?"0":bearing;
【讨论】:
以上是关于如何检查 id String 是不是为空,然后在 android studio 中定义一个默认值是不是为空的主要内容,如果未能解决你的问题,请参考以下文章