iT邦幫忙

1

請問如何將帶有PHP資料的字串轉換成整數

  • 分享至 

  • xImage
//首頁
package com.example.post;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.os.StrictMode;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
                .detectDiskReads()
                .detectDiskWrites()
                .detectNetwork()
                .penaltyLog()
                .build());
        StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
                .detectLeakedClosableObjects()
        .penaltyLog()
        .penaltyDeath()
        .build());
        //寫載入資料且顯示畫面
        Button b1=(Button)findViewById(R.id.button);
        b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String r = DBstring.DB1("select * from text1");
                TextView TV=(TextView)findViewById(R.id.textView);
                TV.setText(r.toString());

                int intV = Integer.valueOf(String TV);
                if (intV>0){
                    TextView TV2=(TextView)findViewById(R.id.textView2);
                    TV2.setText("正");
                }
                else{
                    TextView TV2=(TextView)findViewById(R.id.textView2);
                    TV2.setText("負");
                }
            }
        });
    }
}
package com.example.post;

import android.util.Log;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

import java.util.ArrayList;

//做連結的地方
public class DBstring {
    public static String DB1(String i){
        String result="";
        try {
            HttpClient HC=new DefaultHttpClient();
            HttpPost HP =new HttpPost("網址");
            ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();//ArrayList是一個陣列表,NameValuePair是一個接口
            params.add(new BasicNameValuePair("S1",i));//BasicNameValuePair先將參數放入list,再對參數進行URL編碼S1為網頁設定POST的名稱
            HP.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));//UrlEncodedFormEntity為指定編碼參數構造一個新的來發送HttpPost請求(ex:UTF8)
            HttpResponse HR=HC.execute(HP);//HttpResponse=接收傳回的值。execute為執行=>用在GET and POST
            result= EntityUtils.toString(HR.getEntity(),HTTP.UTF_8);//取得回傳的資料實體(需自行轉UTF8格式)轉成靜態(EntityUtils)字串
        }catch (Exception e){
            Log.i("錯誤訊息",e.toString());//Log.i 發送日誌消息並記錄異常
        }
        return result;
    }
}

問題在MainActivity39行
int intV = Integer.valueOf(String TV);錯誤

TV->id名稱textView的textview

TV.setText(r.toString());
//連結網址的php資料放入textview裡,textview目前顯示資料為15
PHP資料能正常顯示

但想把TV字串的資料轉換成整數
拿去做判斷式.......
int intV = Integer.valueOf(String TV);//沒法修改成數值
應該如何修改才能把TV字串帶入Integer.valueOf轉換成數值呢???
https://ithelp.ithome.com.tw/upload/images/20200308/20125352G6yvxsxUwi.jpg
OS:測試過 PHP資料能夠顯示

舜~ iT邦高手 1 級 ‧ 2020-03-08 21:27:41 檢舉
英文直接轉成數字??您要的是什麼?
順序? (a=1 , b=2 ,c=3...... z=26)
ascii? (a = 十進制97 = 十六進制 61)
長度?
Mangma iT邦新手 5 級 ‧ 2020-03-08 21:49:38 檢舉
我猜您是要取TextView TV 內的數字?
把int intV = Integer.valueOf("TV");換成
int intV = Integer.parseInt(TV.getText().toString().trim());看看
--------------------------------------------------------------------------------
我去試試
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

2
舜~
iT邦高手 1 級 ‧ 2020-03-08 21:29:51
最佳解答

英文字母轉成數字??您這數字指的是什麼?
順序? (a=1 , b=2 ,c=3...... z=26)
ascii? (a = 十進制97 = 十六進制 61)
長度? ("TV".length() = 2)
數字字串轉整數?

我猜您是要取TextView TV 內的數字?
int intV = Integer.valueOf("TV");換成
int intV = Integer.parseInt(TV.getText().toString().trim());看看

Mangma iT邦新手 5 級 ‧ 2020-03-08 21:46:40 檢舉

沒有寫清楚不好意思,真正要問的是
int intV = Integer.valueOf(裡面放入TV字串);框框內應該怎麼寫
TV.setText(r.toString());
//連結網址的php資料放入textview裡,textview目前顯示資料為15
php的資料丟入if...else判斷
要用int intV = Integer.valueOf();把字串"15"轉換成數值15

Mangma iT邦新手 5 級 ‧ 2020-03-08 21:54:36 檢舉

com.example.post.MainActivity$1.onClick(MainActivity.java:38)
程式仍然會跳出

Mangma iT邦新手 5 級 ‧ 2020-03-08 22:00:20 檢舉

以為要用php輸出的資料需要用到json格式
去掉陣列格式
再用上大大改的文法有成功
int intV = Integer.parseInt(TV.getText().toString().trim());
這次有成功執行了,非常感謝

我要發表回答

立即登入回答