Sli*_*ick 1 java string android 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;
Run Code Online (Sandbox Code Playgroud)
谢谢!
您无法修改字符串本身,但您可以轻松地创建子字符串:
line = line.substring(16);
Run Code Online (Sandbox Code Playgroud)
单参数重载在给定的起始索引之后substring占用了整个字符串的其余部分.双参数重载从第一个参数指定的索引开始,并以第二个参数(独占)指定的索引结束.因此,要在"跳过"前16个字符后获得前三个字符,您需要使用:
line = line.substring(16, 19);
Run Code Online (Sandbox Code Playgroud)
请注意,您不必分配回同一个变量 - 但您需要了解它不会影响您调用它的字符串对象.所以:
String original = "hello world";
String secondPart = original.substring(6);
System.out.println(original); // Still prints hello world
System.out.println(secondPart); // Prints world
Run Code Online (Sandbox Code Playgroud)
编辑:如果要删除整个文件的前16个字符,您需要:
textDisplayMetar.append("\n" + total.toString().substring(16) + "\n");
Run Code Online (Sandbox Code Playgroud)
如果您希望以每行为基础,则需要:
while ((line = r.readLine()) != null) {
total.append(line.substring(16));
}
Run Code Online (Sandbox Code Playgroud)
请注意,这两个都可能需要额外的验证 - 如果您调用substring(16)少于16个字符的字符串,它将引发异常.
| 归档时间: |
|
| 查看次数: |
1504 次 |
| 最近记录: |