2017-07-24 95 views
-4

我想提取给定字符串的子字符串。 示例字符串是rta=0.037ms;3000.000;5000.000;0; pl=10%;80;100;; rtmax=0.125ms;;;; rtmin=0.012ms; 如何从java中的给定字符串中提取子字符串

我希望在“rta =”和pl =后的百分比之后只有0.037ms。我试图用空格分隔上面的字符串,然后用分号分隔。不工作。

+0

写一个正则表达式语句,或者使用string.spit()和分裂的空间 – ja08prat

+0

的可能的复制 - (HTTPS [Java的最简单的方法后子串里面串来获取来性状]://计算器.com/questions/27346818/java-simplest-way-to-get-characters-that-c​​ome-after-substring-inside-string) –

回答

5
String s = "rta=0.037ms;3000.000;5000.000;0; pl=10%;80;100;; rtmax=0.125ms;;;; rtmin=0.012ms;"; 
Pattern pattern = Pattern.compile("rta=(.*?);.*pl=(.*?);"); 
Matcher matcher = pattern.matcher(s); 
if(matcher.find()){ 
    System.out.println(matcher.group(1)); 
    System.out.println(matcher.group(2)); 
} 
+0

谢谢..我几乎写了相同的正则表达式,但错过了分号。它再次表示感谢。 – Jes

2
String str = "rta=0.037ms;3000.000;5000.000;0; pl=10%;80;100;; rtmax=0.125ms;;;; rtmin=0.012ms;"; 
String[] parts = str.split(";"); 
String part1 = parts[0]; // rta=0.037ms 
String part2 = parts[4]; // pl=10% 
... 

System.out.println(part1.substring(4)); // 0.037ms 
System.out.println(part2.substring(4)); // 10% 
+0

可能你的意思是'String string = ...'not'str' –

+0

@Carlos ,是的..打字错误:) – Ihdina

+0

第二个sout应该是,System.out.println(part2.substring(4)); – karna

相关问题