Удаление символов из строки - PullRequest
1 голос
/ 05 августа 2011

У меня есть приложение, в котором я анализирую TXT-файл из URL и выкладываю строку пользователю. Я хочу удалить первые 16 символов строки. Как я могу это сделать?

РЕДАКТИРОВАТЬ - я хочу удалить 16 символов из данных, которые я получаю от моего http-вызова.

public void onClick(View src) {
        switch(src.getId()) {
        case R.id.buttonRetrieveMetar:


            InputMethodManager imm = (InputMethodManager)   
getSystemService(Context.INPUT_METHOD_SERVICE);

imm.hideSoftInputFromWindow(EditTextAirportCode.getWindowToken(), 0);


            textDisplayMetar.setText ("");


            airportcode = EditTextAirportCode.getText().toString();
            url = urlmetar + airportcode + ".TXT";

            //Added 06-27-11 METAR code
            textDisplayMetar.setText ("");

            try {
                HttpGet httpGet = new HttpGet(url);
                HttpClient httpclient = new DefaultHttpClient();
                // Execute HTTP Get Request
                HttpResponse response = httpclient.execute(httpGet);
                content = response.getEntity().getContent();
                BufferedReader r = new BufferedReader(new     
InputStreamReader(content));
                StringBuilder total = new StringBuilder();
                String line;

                while ((line = r.readLine()) != null) {
                    total.append(line);
                } 
                textDisplayMetar.append("\n" + total + "\n");
                    } catch (Exception e) {
                //handle the exception !
            }


   break;

Спасибо!

Ответы [ 2 ]

9 голосов
/ 05 августа 2011

Вы не можете изменить саму строку, но вы можете создать подстроку достаточно легко:

line = line.substring(16);

Перегрузка одного параметра substring принимает целое изостаток строки после заданного начального индекса.Перегрузка с двумя параметрами начинается с индекса, указанного в первом аргументе, и заканчивается индексом, указанным во втором аргументе (исключая).Таким образом, чтобы получить первые три символа после «пропуска» первых 16, вы должны использовать:

line = line.substring(16, 19);

Обратите внимание, что вам не нужно присваивать одну и ту же переменную - но вы должны понимать, чтоэто не влияет на строку объект , которую вы вызываете.Итак:

String original = "hello world";
String secondPart = original.substring(6);

System.out.println(original); // Still prints hello world
System.out.println(secondPart); // Prints world

РЕДАКТИРОВАТЬ: Если вы хотите удалить первые 16 символов всего файла, вы хотите:

textDisplayMetar.append("\n" + total.toString().substring(16) + "\n");

Если вы хотите это на строка базис, вам нужно:

while ((line = r.readLine()) != null) {
    total.append(line.substring(16));
}

Обратите внимание, что оба из них могут потребовать дополнительной проверки - если вы вызовете substring(16) для строки длиной менее 16 символов, она выдаст исключение.

0 голосов
/ 05 августа 2011

Попробуйте это:

String newString = oldString.substring(16);
...