在特定字符串变量之间提取字符串

时间:2014-12-08 08:28:59

标签: java string substring

我需要在两个特定的字符串变量之间提取一个字符串。例如,考虑字符串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);

2 个答案:

答案 0 :(得分:1)

   s.substring(s.indexOf("A"), s.indexOf("B"))

答案 1 :(得分: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
}