我是java的新手,我有一个字符串
"rdl_mod_id:0123456789\n\nrdl_mod_name:Driving Test\n\nrdl_mod_type:PUBL\n\nrdl_mod_mode:Practice\n\nrdl_mod_date:2013-04-23"
我想要的是获得Driving Test
字。这个词是动态变化的,所以我想要发生的是在rdl_mod_name:
和\n
之间得到这个词。
答案 0 :(得分:0)
我会研究java正则表达式(正则表达式)。 String matches方法使用正则表达式来确定字符串中是否存在模式。对于你正在做的事情,我可能会使用'matches(rdl_mod _。* \ n)'。 '。*'是字符串的通配符,因此在此上下文中它表示rdl_mod和\ n之间的任何内容。我不确定匹配方法是否可以处理正斜杠(它们表示特殊文本字符),因此您可能必须用不同的字符替换它们或完全删除它们。
答案 1 :(得分:0)
Use java's substring() function with java indexof() function.
答案 2 :(得分:0)
请尝试以下操作..它适用于您的情况..
String str = "rdl_mod_id:0123456789\n\nrdl_mod_name:Driving Test\n\nrdl_mod_type:PUBL\n\nrdl_mod_mode:Practice\n\nrdl_mod_date:2013-04-23";
Pattern pattern = Pattern.compile("rdl_mod_name:(.*?)\n");
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
您还可以使用regex
,matcher
,pattern
来获得所需的结果。
以下链接也会给您一个公平的想法:
Extract string between two strings in java
Java- Extract part of a string between two special characters
答案 3 :(得分:0)
试试这段代码:
String s = "rdl_mod_id:0123456789\n\nrdl_mod_name:Driving Test\n\nrdl_mod_type:PUBL\n\nrdl_mod_mode:Practice\n\nrdl_mod_date:2013-04-23";
String sArr[] = s.split("\n\n");
String[] sArr1 = sArr[1].split(":");
System.out.println("sArr1[1] : " + sArr1[1]);
s.split("\n\n");
会根据\n\n
拆分字符串。
第二个分裂,即sArr[1].split(":");
将基于:
分割数组sArr中的第二个元素,即拆分rdl_mod_name:将测试驱动到rdl_mod_name和驾驶测试。
sArr1[1]
是您想要的结果。