如何使用 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));
}
}
}
更新:
您可以更严格地使用正则表达式,例如:
"E([0-9]+\.[0-9]+)"
您可以使用 String
中的 indexOf()
方法,例如:
如果您只想要粗体字,并且您的数字中必须有一个点:
String str = "[amt is E234.98.valid 23/12/2013.Sample text]";
这样做:
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);
唯一的区别是,如果你必须有一个点,那么你必须检查它的位置并从它开始。
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));
}
}
}
更新:
您可以更严格地使用正则表达式,例如:
"E([0-9]+\.[0-9]+)"
您可以使用 String
中的 indexOf()
方法,例如:
如果您只想要粗体字,并且您的数字中必须有一个点:
String str = "[amt is E234.98.valid 23/12/2013.Sample text]";
这样做:
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);
唯一的区别是,如果你必须有一个点,那么你必须检查它的位置并从它开始。