Android “用两个分隔符分割乐趣”|&引用;它不起作用了
在我的doInBackground(String…arg0)方法中,我得到一个结果变量,其中包含:Android “用两个分隔符分割乐趣”|&引用;它不起作用了,android,split,tokenize,Android,Split,Tokenize,在我的doInBackground(String…arg0)方法中,我得到一个结果变量,其中包含: 4|Litter Bin,-37.8141472000103,144.963691391683,17.354417684886|Litter Bin,-37.8141472763581,144.963685395193,17.179052776008|Litter Bin,-37.8139653160326,144.963765797949,13.429259628312|Litter Bin,-
4|Litter Bin,-37.8141472000103,144.963691391683,17.354417684886|Litter Bin,-37.8141472763581,144.963685395193,17.179052776008|Litter Bin,-37.8139653160326,144.963765797949,13.429259628312|Litter Bin,-37.8139469233985,144.963755935562,13.402390334431
我正在尝试使用拆分来匹配此表单:
N |类别,纬度,经度,距离|类别,纬度,经度,距离
当我使用“|”时,它不会分割任何内容
这是我的密码:
@Override
protected Integer doInBackground(String... arg0) {
String result = "";
int responseCode = 0;
int executeCount = 0;
HttpResponse response;
StringBuilder sb = new StringBuilder();
String line;
try
{
HttpClient client = new DefaultHttpClient();
HttpGet httppost = new HttpGet("http://XXX/ccvo/mel-asset-data/query.php?lon="+ arg0[0].toString() + "&lat="+ arg0[1].toString() +"&within=" + arg0[2].toString() + "&keyword="+ arg0[3].toString().replace(" ", "%20"));
Log.v("Results", "from web: " + arg0[0]);
Log.v("Results", "from web: " + arg0[1]);
Log.v("Results", "from web: " + arg0[2]);
Log.v("Results", "from web: " + arg0[3]);
do
{
progressDialog.setMessage("Passing paratmeters.. ("+(executeCount+1)+"/5)");
// Execute HTTP Post Request
executeCount++;
response = client.execute(httppost);
responseCode = response.getStatusLine().getStatusCode();
} while (executeCount < 5 && responseCode == 408);
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
while ((line = rd.readLine()) != null)
{
result = line.trim();
sb.append(line);
}
}catch (Exception e2) {
responseCode = 408;
e2.printStackTrace();
}
rst = result.toString();
if(rst != null && rst.length() > 0)
{
strArr = rst.split(",");
for(int i=0;i<strArr.length;i++)
{
Log.d("Results", "Array split 1: " + strArr[i]);
}
}
return responseCode;
}
请问您对如何使用“,”和“|”有何想法 您正在使用获取字符串编写错误的逻辑。 只需将
rst=result.toString()
放在while之外
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
while ((line = rd.readLine()) != null)
{
result = line.trim();
sb.append(line);
}
rst = result.toString();
然后使用检查字符串是否为空
if(rst != null && rst.length > 0)
{
strArr = rst.split(",");
for(int i=0;i<strArr.length;i++)
{
Log.d("Results", "Array split 1: " + strArr[i]);
}
}
if(rst!=null&&rst.length>0)
{
strArr=rst.split(“,”);
对于(int i=0;i 0)
{
strArr1=rst.split(“|”);
对于(int i=0;i0&&strArr1[i]。包含(“,”)
{
字符串strArr2=strArr1[i]。拆分(“,”;
对于(int j=0;jCan您可以发布日志cat输出吗?现在错误已通过V.j.修复程序解决。我现在的问题是使用“|”时没有拆分。我需要匹配以下表单:N |类别、纬度、经度、距离|类别、纬度、经度、距离……谢谢,它对我有效,但当我使用“|”而不是“,”,它不会拆分字符串。我需要同时使用“|”和“,”来匹配此形式:N |类别、纬度、经度、距离|类别、纬度、经度、距离…我对“|”和“,”进行了更改。请查看我编辑过的答案。我应该像这样使用strArr=rst.split(\\\\\\”);但非常感谢。它现在工作正常。
if(rst != null && rst.length > 0)
{
strArr = rst.split(",");
for(int i=0;i<strArr.length;i++)
{
Log.d("Results", "Array split 1: " + strArr[i]);
}
}
if(rst != null && rst.length > 0)
{
strArr1 = rst.split("|");
for(int i=0;i<strArr1.length;i++)
{
if(strArr1[i] != null && strArr1[i].length >0 && strArr1[i].contains(","))
{
String strArr2 = strArr1[i].split(",");
for(int j=0; j<strArr2.length ;j++)
{
Log.d("Results", "Array split "+i+": " + strArr2[j]);
}
}
}
}