android String到Int无法正常工作

Sun*_*ena -1 java android

您好我是Android的新手,我正在尝试将字符串转换为Int,但它不起作用.我正在使用Volley向服务器发送HTTP GET请求并返回一个数字,但android无法转换为Integer

我的代码

     public void getRemainingTime() {
        // Instantiate the RequestQueue.
        RequestQueue queue = Volley.newRequestQueue(this);
        String url ="http://myurl.com/xxx";
        // Request a string response from the provided URL.
        StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        int myNum = 0;
                        try {
                            myNum = Integer.parseInt(response);
                        } catch(NumberFormatException nfe) {
                            nfe.printStackTrace();
                        }
                        reverseTimer(myNum);
                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                textTimer.setText("That didn't work!");
            }
        });
        // Add the request to the RequestQueue.
        queue.add(stringRequest);
    }
Run Code Online (Sandbox Code Playgroud)

saj*_*jib 5

您从服务器响应中收到非数字字符.在转换之前添加以下行:

response = response.replaceAll("[^0-9]","");
Run Code Online (Sandbox Code Playgroud)

方法:

@Override
    public void onResponse(String response) {
        int myNum = 0;
        try {
            response = response.replaceAll("[^0-9]","");
            myNum = Integer.parseInt(response);
        } catch(NumberFormatException nfe) {
            nfe.printStackTrace();
        }
        reverseTimer(myNum);
    }
Run Code Online (Sandbox Code Playgroud)

**你可以过滤很多方法.这里再给出一个,由@YCF_L建议

response = response.replaceAll("\\D","");
Run Code Online (Sandbox Code Playgroud)