2014-12-08 145 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 
}