Android 如何拆分此字符串?

Android 如何拆分此字符串?,android,string,split,Android,String,Split,我想把这根绳子分开 String info = "0.542008835 meters height from ground"; 从这里我只想得到两个像这样的小数0.54 通过使用这个,我得到了 String[] _new = rhs.split("(?<=\\G....)"); 对于这个字符串,我得到的字符最多为拆分字符串中的前4个,如1ME。 如果有小数,我只想拆分数字,如何解决这个问题。if(info.contains(“.”) if(info.contains(".")) {

我想把这根绳子分开

String info = "0.542008835 meters height from ground";
从这里我只想得到两个像这样的小数
0.54

通过使用这个,我得到了

String[] _new = rhs.split("(?<=\\G....)");
对于这个字符串,我得到的字符最多为拆分字符串中的前4个,如
1ME
。 如果有小数,我只想拆分数字,如何解决这个问题。

if(info.contains(“.”)
if(info.contains("."))
{
       String[] _new = rhs.split("(?<=\\G....)");
}
{
String[]_new=rhs.split(“(?我认为您可以在第一个值后用空格进行检查。请参阅 如果获得空格,则仅获取第一个字符

要检查字符串是否包含空格,请使用匹配器并调用它的find方法

Pattern pattern = Pattern.compile("\\s");
Matcher matcher = pattern.matcher(s);
boolean found = matcher.find();
如果要检查它是否只包含空格,则可以使用String.matches:

boolean isWhitespace = s.matches("^\\s*$");

假设数字始终是字符串的第一部分:

String numStr = rhs.split(" ")[0];
Double num = Double.parseDouble(numStr);

之后,您可以使用字符串来获得所需的数字表示形式。

您可以使用正则表达式来实现这一点,作为Deepzz方法的替代方法,这将处理字符串后面有“.”的情况。在后面的部分中,我已经包括了一个示例。您的问题不清楚您是否真的希望保留剩余部分但您可以向reg-ex添加第二个组来捕获该字符串

public static void main(String[] args) {
    final String test1 = "1.23 foo";
    final String test2 = "1 foo";
    final String test3 = "1.234 foo";
    final String test4 = "1.234 fo.o";
    final String test5 = "1 fo.o";
    getStartingDecimal(test1);
    getStartingDecimal(test2);
    getStartingDecimal(test3);
    getStartingDecimal(test4);
    getStartingDecimal(test5);

}

private static void getStartingDecimal(final String s) {
    System.out.print(s + " : ");
    Pattern pattern = Pattern.compile("^(\\d+\\.\\d\\d)");
    Matcher matcher = pattern.matcher(s);
    if(matcher.find()) {
        System.out.println(matcher.group(1));
    } else {
        System.out.println("Doesn't start with decimal");
    }
}

当您知道数字附近的字符串,以及int和double数字时,这将起作用

    String a ="0.542008835 meters height from ground";
    String b = a.replace(" meters height from ground", "");
    int c = (int) ((Double.parseDouble(b))*100);
    double d = ((double)c/100);

你从哪里得到这个字符串?你输入的保证是什么?字符串总是以数字开头吗?我是从db得到这个字符串的?如果米距地面的高度是一致的,就把它去掉。是的,我的字符串总是以数字开头,它将是十进制或完美的数字。这个字符串米距地面的高度不是comm为所有值启用,但我认为这是一个自动生成的字符串,ansd您有一些表单,但这是准确的。然后尝试替换所有,如果您有5个。比您检查所有选项,始终检查-s更快。现在我面临一个问题,当该字符串是这样的”406.9881米离地高度“我可以像406这样分开,但我想要像406这样的两个小数点。”。98@RajaReddyPolamReddy:好的,然后试试这个…
String[]\u new=rhs.split(“.”;
u将得到_new[1]作为小数点前的值。然后你可以从字符串中得到前两个字母_new[2]..然后附加两个字符串..两个都很好,谢谢,女士.不用认为你的答案不是更好.两个都很好。
    String a ="0.542008835 meters height from ground";
    String b = a.replace(" meters height from ground", "");
    int c = (int) ((Double.parseDouble(b))*100);
    double d = ((double)c/100);