2014-12-08 2 views
-5

Мне нужно извлечь строку между двумя конкретными строковыми переменными. Например, рассмотрим строку x1-676y1-44z188x2-623y2-67z274. Теперь мне нужно найти x1 и y1 в строке, получить все данные между x1 и y1 и сохранить их как строку не как символ. Аналогичным образом получают данные между y1 и z1 и другими переменными.Извлечь строку между определенной строковой переменной

Ниже приведен код, который я попробовал:

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

+1

Да. Напишите __code__. – Unihedron

+3

Строка имеет хороший метод: int indexOf (String str) – Milkmaid

ответ

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

Ya это сработало. Но теперь он принимает x1 в output.I хочу только строку между x1 и y1. – user4336477

+0

Считаете ли вы, что +1? – Blitzkr1eg

+0

Да Теперь я получаю желаемый результат. Спасибо. Я сделал это как s.substring (s.indexOf («A») + 1, s.indexOf («B»)) – user4336477

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 
} 
Смежные вопросы