Попытка извлечь подстроку из буферизованного считывателя, который читает между определенными тегами

81
8

Я извлекаю 5 веб-страниц, используя bufferedreader, каждый из которых разделен пробелом. Я хочу использовать подстроку для извлечения URL-адресов страниц, html, source и date. Но мне нужно руководство о том, как правильно использовать подстроку для достижения этого, приветствия.

public static List<WebPage> readRawTextFile(Context ctx, int resId) {   

InputStream inputStream = ctx.getResources().openRawResource(
R.raw.pages);

InputStreamReader inputreader = new InputStreamReader(inputStream);
BufferedReader buffreader = new BufferedReader(inputreader);
String line;
StringBuilder text = new StringBuilder();

try {
while ((line = buffreader.readLine()) != null) {

if (line.length() == 0) {
// ignore for now
//Will be used when blank line is encountered
}

if (line.length() != 0) {
//here I want the substring to pull out the correctStrings
int sURL = line.indexOf("<!--");
int eURL = line.indexOf("-->");
line.substring(sURL,eURL);
**//Problem is here**
}
}
} catch (IOException e) {
return null;

}
return null;
}

спросил(а) 2013-01-04T04:36:00+04:00 7 лет, 9 месяцев назад
1
Решение
71

В блоке catch не return null, используйте printStackTrace(); , Это поможет вам найти, если что-то пошло не так.

        String str1 = "<!--Address:google.co.uk.html-->";
// Approach 1
int st = str1.indexOf("<!--"); // gives index which starts from <
int en = str1.indexOf("-->"); // gives index which starts from -
str1 = str1.substring(st + 4, en);
System.out.println(str1);

// Approach 2
String str2 = "<!--Address:google.co.uk.html-->";
str2 = str2.replaceAll("[<>!-]", "");
System.out.println( str2);

Обратите внимание, что $ 100: имейте в виду, что использование regex в replaceAll заменит все в строке, содержащей параметры regex.

ответил(а) 2013-01-04T05:07:00+04:00 7 лет, 9 месяцев назад
58

Я думаю, что вы хотите, так это,

public class Test {
public static void main(String args[]) {
String text = "<!--Address:google.co.uk.html-->";
String converted1 = text.replaceAll("\\<!--", "");
String converted2 = converted1.replaceAll("\\-->", "");
System.out.println(converted2);
}

}

результат: Адрес: google.co.uk.html

ответил(а) 2013-01-04T04:49:00+04:00 7 лет, 9 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема