Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检查字符串中单词的值_Java_String_Token - Fatal编程技术网

Java 检查字符串中单词的值

Java 检查字符串中单词的值,java,string,token,Java,String,Token,我有一根像 String example = "Tag: something Id: somethingElse Score: 0.8"; 如何检查得分是否高于/等于/低于0。通过使用lastIndexOf和substringfromString对象,可以从字符串中获取值 String scoreStr = example.substring(example.lastIndexOf("Score:") + "Score:".length()); double score = Double.p

我有一根像

String example =  "Tag: something Id: somethingElse Score: 0.8";

如何检查
得分
是否高于/等于/低于0。

通过使用
lastIndexOf
substring
from
String
对象,可以从字符串中获取值

String scoreStr = example.substring(example.lastIndexOf("Score:") + "Score:".length());
double score = Double.parseDouble(scoreStr.trim());
现在,您可以在
score
上执行
if
else if
语句

PS:如果要将其返回为float,请更改最后一行,如下所示:

float score = Float.parseFloat(scoreStr.trim());

通过使用
String
对象中的
lastIndexOf
substring
,可以从字符串中获取值

String scoreStr = example.substring(example.lastIndexOf("Score:") + "Score:".length());
double score = Double.parseDouble(scoreStr.trim());
现在,您可以在
score
上执行
if
else if
语句

PS:如果要将其返回为float,请更改最后一行,如下所示:

float score = Float.parseFloat(scoreStr.trim());
然后检查得分加倍


然后检查scoreDouble。

如果格式稳定,可以查找“Score:”,获取字符串的剩余部分,并根据需要的精度将其解析为浮点数或双倍数

String example = "Tag: something Id: somethingElse Score: 0.8";
String search = "Score: ";
int scorePosition = example.indexOf(search) + search.length();
float num = Float.parseFloat(example.substring(scorePosition));

之后,它将是一个简单的if on
num
。您还应该捕获NumberFormatException,尤其是在字符串格式有时可能出错的情况下。

如果格式稳定,您可以查找“Score:”,获取字符串的其余部分,并根据需要的精度将其解析为浮点数或双数

String example = "Tag: something Id: somethingElse Score: 0.8";
String search = "Score: ";
int scorePosition = example.indexOf(search) + search.length();
float num = Float.parseFloat(example.substring(scorePosition));

之后,它将是一个简单的if on
num
。您还应该了解NumberFormatException,尤其是在字符串格式有时可能出错的情况下。

作为@Elite Gentle的替代方案:

String [] tokens = example.split(" |:");
Double score = Double.valueOf( tokens[tokens.length - 1] )

如果分数总是最后一个,当然:)

作为“精英绅士”的替代品:

String [] tokens = example.split(" |:");
Double score = Double.valueOf( tokens[tokens.length - 1] )

如果分数总是最后一个,当然:)

这不起作用。首先,您忘记了在计算索引以获取scoreStr时添加
“Score:
的长度。第二:你应该先修剪你的
scoreStr
,然后再将其转换为double。第三:在
String
中没有像
parseDouble
那样的方法。我认为应该是
Double.parseDouble(str)不总是最后三个字符。。它可能类似于0.8(如示例所示),或者类似于0.2345356或1.344,或者……不是真的,它仍然不工作,字符串没有parseDouble()method@user992821,我没有读最后3个字符。请阅读并理解我的代码。@Stivlo,谢谢……哈哈。有趣的是,我正在看
Double.parseDouble()
。我想我打字太快了。这行不通。首先,您忘记了在计算索引以获取scoreStr时添加
“Score:
的长度。第二:你应该先修剪你的
scoreStr
,然后再将其转换为double。第三:在
String
中没有像
parseDouble
那样的方法。我认为应该是
Double.parseDouble(str)不总是最后三个字符。。它可能类似于0.8(如示例所示),或者类似于0.2345356或1.344,或者……不是真的,它仍然不工作,字符串没有parseDouble()method@user992821,我没有读最后3个字符。请阅读并理解我的代码。@Stivlo,谢谢……哈哈。有趣的是,我正在看
Double.parseDouble()
。我想我打字太快了。