Java 从字符串中删除字符

Java 从字符串中删除字符,java,android,string,character,Java,Android,String,Character,我有一个应用程序,在其中我从URL解析一个.txt文件,并向用户吐出字符串。我想删除字符串的前16个字符。我该怎么做 编辑-我想从http调用接收的数据中删除16个字符 public void onClick(View src) { switch(src.getId()) { case R.id.buttonRetrieveMetar: InputMethodManager imm = (InputMethodManager) g

我有一个应用程序,在其中我从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;

谢谢

您不能修改字符串本身,但可以很容易地创建子字符串:

line = line.substring(16);
substring
的单参数重载将获取给定开始索引后字符串的全部剩余部分。双参数重载从第一个参数指定的索引开始,到第二个参数指定的索引结束(独占)。因此,要获得“跳过”前16个字符后的前三个字符,您可以使用:

line = line.substring(16, 19);
请注意,您不必重新分配给同一个变量,但您需要了解它不会影响调用它的string对象。因此:

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));
}
如果您希望以每行为基础,您需要:

textDisplayMetar.append("\n" + total.toString().substring(16) + "\n");
while ((line = r.readLine()) != null) {
    total.append(line.substring(16));
}

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

您不能修改字符串本身,但您可以非常轻松地创建子字符串:

line = line.substring(16);
substring
的单参数重载将获取给定开始索引后字符串的全部剩余部分。双参数重载从第一个参数指定的索引开始,到第二个参数指定的索引结束(独占)。因此,要获得“跳过”前16个字符后的前三个字符,您可以使用:

line = line.substring(16, 19);
请注意,您不必重新分配给同一个变量,但您需要了解它不会影响调用它的string对象。因此:

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));
}
如果您希望以每行为基础,您需要:

textDisplayMetar.append("\n" + total.toString().substring(16) + "\n");
while ((line = r.readLine()) != null) {
    total.append(line.substring(16));
}
请注意,这两种方法都可能需要额外的验证-如果对少于16个字符的字符串调用
子字符串(16)
,它将引发异常。

尝试以下方法:

String newString = oldString.substring(16);
试试这个:

String newString = oldString.substring(16);

这是有道理的,不幸的是,我仍然需要一点帮助把它放到上下文中。我将编辑我原来的帖子。我想从url解析的内容中删除16个字符。@Slicekick:从每一行,还是从整个文件的开头?我已经包括了后一个案例的编辑,也将包括前一个案例。完成了!谢谢你的解释,非常感谢。我希望有一天能在谷歌工作。这是有道理的,不幸的是,我仍然需要一点帮助,把它放到上下文中去。我将编辑我原来的帖子。我想从url解析的内容中删除16个字符。@Slicekick:从每一行,还是从整个文件的开头?我已经包括了后一个案例的编辑,也将包括前一个案例。完成了!谢谢你的解释,非常感谢。我希望有一天能在谷歌工作。