繁体   English   中英

如何使用Java Android读取字符串后跟数字的特定字符?

[英]How to read numbers after followed by particular Character of a string using Java Android?

String str = "[amt is E234.98.valid 23/12/2013.Sample text]"

如何仅从上述示例字符串中的字符“ E”之后读取量值。

您可以使用正则表达式和匹配组来提取所需的内容。

代码更新:

通过调用ParseWithRegexp.testIt()

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ParseWithRegexp {
    static String str = "[amt is E234.98.valid 23/12/2013.Sample text  E134.95.valid 23/12/2015]";
    public static void testIt() {
        Pattern p = Pattern.compile("E([0-9.]+)\\.valid");
        Matcher m = p.matcher(str);
        while (m.find()) {
            System.out.println("found: "+m.group(1));
        }
    }
}

Upadte:您可以使用正则表达式更加严格,例如: "E([0-9]+\\\\.[0-9]+)"

您可以使用String indexOf()方法,例如:

如果您只想要粗体字,并且号码中必须有一个点:

字符串str = “[AMT为E 234.98 .valid一十二分之二十三/ 2013.Sample文本]”;

做这个:

String str = "whatever E2024.1.E";

///Start from the first character after "E"
int startPos = str.indexOf("E") + 1;

///Start from startPos
int dotPos = str.indexOf(".", startPos);

///Start from the first character after dotPos
int endPos = str.indexOf(".", dotPos + 1);

///return the result
return str.substring(startPos, endPos);

否则,如果只希望数字一直到第一个点,则执行以下操作:

String str = "whatever E2024.1.E";

///Start from the first character after "E"
int startPos = str.indexOf("E") + 1;

///Start from the first character after startPos
int endPos = str.indexOf(".", startPos+ 1);

///return the result
return str.substring(startPos, endPos);

唯一的区别是,如果必须存在一个点,则必须检查其位置并从其开始。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM