2014-12-08 138 views
-5

我需要提取两个特定字符串变量之间的字符串。例如,考虑字符串x1-676y1-44z188x2-623y2-67z274。现在我需要检测字符串中的x1y1,获取x1y1之间的所有数据并将其存储为字符串而不是字符。同样获取y1z1之间的数据以及其他变量。提取特定字符串变量之间的字符串

下面是我的代码,我想:

bytes = mmInStream.read(buffer); 
String str = new String(buffer, "UTF-8"); // prints character 
Log.d("Data Transmitted", str); 

StringBuffer sb = new StringBuffer(str); 
int a=sb.indexOf("x1"); 
char x1=sb.charAt(a+1); 
System.out.println(x1); 

int b=sb.indexOf("y1"); 
char y1=sb.charAt(b+1); 
System.out.println(y1); 
+1

的,什么是你试过吗? – sol4me 2014-12-08 08:30:36

+1

是的。写__code__。 – Unihedron 2014-12-08 08:30:49

+3

字符串有很好的方法:int indexOf(String str) – Milkmaid 2014-12-08 08:30:53

回答

1
s.substring(s.indexOf("A"), s.indexOf("B")) 
+0

雅它的工作。但现在它在x1输出。我只想在x1和y1之间的字符串。 – user4336477 2014-12-08 09:30:19

+0

您认为+1? – Blitzkr1eg 2014-12-08 09:53:49

+0

是的现在我越来越希望Output.Thank You.I做了s.substring(s.indexOf(“A”)+ 1,s.indexOf(“B”)) – user4336477 2014-12-08 10:03:34

1

您可以使用substring方法:

int x1pos = str.indexOf("x1"); 
int y1pos = str.indexOf("y1"); 
if (x1pos >= 0 && x1pos <= str.length() - 2 && y1pos >= 0 && y1pos > x1pos) { 
    String between = str.substring(x1pos+2,y1pos); 
} 
else { 
    //do something else 
} 
相关问题