Java 不会 Integer.parseInt(字符串)
Java wont Integer.parseInt(string)
这是我的网站:http://daniandroid.honor.es/getAllCustomers.php
当您访问该站点时,您会看到一个简单的文本“500”。
好的。
final ourHTTP hi = new ourHTTP();
out_string = hi.getWebPage("http://daniandroid.honor.es/getAllCustomers.php");
getWebPage returns 字符串(内容)。
int veriff = Integer.parseInt(out_string);
if(veriff>1)
{
final_form.setText("ya");
}
final_form 是我的 xml 文件中的 TextView(activity_second.xml)
应用程序将崩溃。
错误:
at com.android.interval.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NumberFormatException: Invalid int: "500"
at java.lang.Integer.parse(Integer.java:375)
如果我用这个
替换out_string
out_string= "500";
一切都很好。
我的 getAllCustomers.php 文件包含(来源):
<?php
echo"500";
?>
这里也是获取内容的方法
public String getWebPage(String adress)
{
HttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet();
InputStream inputStream = null;
String response = null;
try{
URI uri = new URI(adress);
httpGet.setURI(uri);
HttpResponse httpResponse = httpClient.execute(httpGet);
inputStream = httpResponse.getEntity().getContent();
Reader reader = new InputStreamReader(inputStream, "UTF-8");
int inChar;
StringBuffer stringBuffer = new StringBuffer();
while((inChar = reader.read()) != -1){
stringBuffer.append((char)inChar);
}
response = stringBuffer.toString();
}catch(ClientProtocolException e)
{
Log.e(adress, "error");
}catch(IOException e)
{
Log.e(response, "error");
//
}catch(URISyntaxException e)
{
Log.e(response, "error");
}
return response;
}
可能您的响应在字符串内部包含 ""
,只需替换 ""
就这样吧,
out_string = hi.getWebPage("http://daniandroid.honor.es/getAllCustomers.php");
if(out_string.contains("\"")) // change according to your response, if it contains other charcter
{
out_string = out_string.replace("\"", "")
}
try
{
int veriff = Integer.parseInt(out_string);
if(veriff>1)
{
final_form.setText("ya");
}
}catch(NumberFormatException ex)
{
// Handle exception
}
我建议你也处理异常,可能是如果你的响应中有其他无效字符..
对于 Java 的版本,您 运行 反对检查代码。
java.lang.Integer.parse(Integer.java:375)
粗暴地使用 Firebug 并检查响应
我看到“500”,这肯定比我预期的“500”要多。
如评论中所述:
我认为您的 HTTP 库将一些非十进制字符与输出一起传递。试试这个:
int veriff = Integer.parseInt(out_string.replaceAll("[\D]",""));
其中 [\D]
是一个正则表达式,表示任何非十进制字符。
这是我的网站:http://daniandroid.honor.es/getAllCustomers.php 当您访问该站点时,您会看到一个简单的文本“500”。
好的。
final ourHTTP hi = new ourHTTP();
out_string = hi.getWebPage("http://daniandroid.honor.es/getAllCustomers.php");
getWebPage returns 字符串(内容)。
int veriff = Integer.parseInt(out_string);
if(veriff>1)
{
final_form.setText("ya");
}
final_form 是我的 xml 文件中的 TextView(activity_second.xml)
应用程序将崩溃。 错误:
at com.android.interval.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NumberFormatException: Invalid int: "500"
at java.lang.Integer.parse(Integer.java:375)
如果我用这个
替换out_stringout_string= "500";
一切都很好。
我的 getAllCustomers.php 文件包含(来源):
<?php
echo"500";
?>
这里也是获取内容的方法
public String getWebPage(String adress)
{
HttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet();
InputStream inputStream = null;
String response = null;
try{
URI uri = new URI(adress);
httpGet.setURI(uri);
HttpResponse httpResponse = httpClient.execute(httpGet);
inputStream = httpResponse.getEntity().getContent();
Reader reader = new InputStreamReader(inputStream, "UTF-8");
int inChar;
StringBuffer stringBuffer = new StringBuffer();
while((inChar = reader.read()) != -1){
stringBuffer.append((char)inChar);
}
response = stringBuffer.toString();
}catch(ClientProtocolException e)
{
Log.e(adress, "error");
}catch(IOException e)
{
Log.e(response, "error");
//
}catch(URISyntaxException e)
{
Log.e(response, "error");
}
return response;
}
可能您的响应在字符串内部包含 ""
,只需替换 ""
就这样吧,
out_string = hi.getWebPage("http://daniandroid.honor.es/getAllCustomers.php");
if(out_string.contains("\"")) // change according to your response, if it contains other charcter
{
out_string = out_string.replace("\"", "")
}
try
{
int veriff = Integer.parseInt(out_string);
if(veriff>1)
{
final_form.setText("ya");
}
}catch(NumberFormatException ex)
{
// Handle exception
}
我建议你也处理异常,可能是如果你的响应中有其他无效字符..
对于 Java 的版本,您 运行 反对检查代码。 java.lang.Integer.parse(Integer.java:375)
粗暴地使用 Firebug 并检查响应
我看到“500”,这肯定比我预期的“500”要多。
如评论中所述:
我认为您的 HTTP 库将一些非十进制字符与输出一起传递。试试这个:
int veriff = Integer.parseInt(out_string.replaceAll("[\D]",""));
其中 [\D]
是一个正则表达式,表示任何非十进制字符。