从字符串中删除字符

时间:2011-08-05 05:56:54

标签: java android string character

我有一个应用程序,我从URL解析.txt文件并将字符串吐出给用户。我想删除字符串的前16个字符。我怎么能这样做?

编辑 - 我想从我的http呼叫中收到的数据中删除16个字符。

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 个答案:

答案 0 :(得分:9)

您无法修改字符串本身,但您可以轻松地创建子字符串:

line = line.substring(16);

substring的单参数重载在给定的起始索引之后获取字符串其余部分的整个。双参数重载从第一个参数指定的索引开始,并以第二个参数(独占)指定的索引结束。因此,要在“跳过”前16个字符后获得前三个字符,您可以使用:

line = line.substring(16, 19);

请注意,您不必分配回同一个变量 - 但您需要了解它不会影响您调用它的字符串 object 。所以:

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));
}

请注意,这两个都可能需要额外验证 - 如果您对少于16个字符的字符串调用substring(16),则会抛出异常。

答案 1 :(得分:0)

试试这个:

String newString = oldString.substring(16);