Замена строковых деталей

0

эта тема обсуждалась здесь много, но ни одно из решений не работало для меня. Я хочу заменить часть строки, которую я получил из HTML. Получение и отображение HTML прекрасно работает, но я не могу удалить какие-либо части строки. Он действует так, как не находит его.

Посмотрите нижеприведенный код:

public class Main extends Activity {

public static String URL = "";
public static String htmlString;
public TextView mainText;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_layout);

    mainText = (TextView) findViewById(R.id.mainText);

    constructURL();
    getHtml();

    htmlString.replaceAll("<head>", "hulo");

    mainText.setText(htmlString);
}

public void getHtml() {
    try {
        HttpClient httpClient = new DefaultHttpClient();
        HttpContext localContext = new BasicHttpContext();
        HttpGet httpGet = new HttpGet(URL);
        HttpResponse response = httpClient.execute(httpGet, localContext);
        BufferedReader reader = new BufferedReader(
            new InputStreamReader(
                    response.getEntity().getContent()
                    )
            );
        String line = null;
        while ((line = reader.readLine()) != null){
            htmlString += line + "\n";
        }
    } catch (Exception e) {
    }
}

public void constructURL() {
    Time time = new Time();
    time.setToNow();
    String year = convertToString(time.year - 2000);
    String month = convertToString(time.month + 1);
    String monthDay = convertToString(time.monthDay);

    URL = "http://www.gymzl.cz/bakalari/suplovani_st/tr" + year + month + monthDay + ".htm";
}

public String convertToString(int value) {
    String text = "";
    if(value < 10) text = "0";
    text += String.valueOf(value);
    return text;
}
}

Замена "hulo" не работает.

Прошу прощения за такой длинный код, но я все пробовал.

Теги:
string
replace

4 ответа

2
Лучший ответ

replaceAll не обновляет вызывающую строку, вам нужно назначить ее обратно. Изменить это

htmlString.replaceAll("<head>", "hulo");

в

htmlString = htmlString.replaceAll("<head>", "hulo");
  • 1
    Спасибо. Я должен был прочитать JavaDOC. Прости за это. Я отмечу это как ответчик как можно скорее.
  • 0
    @ ViliX Нет проблем, иногда это случается. Рад помочь :-)
1

после вызова replaceAll он вернет замененную строку. вам нужно снова присвоить эту новую строку некоторому объекту

как показано ниже, снова присваивая его htmlString

htmlString = htmlString.replaceAll("<head>", "hulo");
1
 htmlString.replaceAll("<head>", "hulo");

возвращает замененную строку, но не меняет htmlString

Так что прям сделай это так

mainText.setText(""+htmlString.replaceAll("<head>", "hulo"));
0
mainText.setText(htmlString.replaceAll("<head>", "hulo"));

Ещё вопросы

Сообщество Overcoder
Наверх
Меню