【问题标题】:how to convert string json array to int array android studio如何将字符串json数组转换为int数组android studio
【发布时间】:2018-12-11 05:03:40
【问题描述】:

我有这样的程序

String[] hello; Integer[] yAxisData2;

我想将字符串 json 数组转换为 int 数组。 , 如何将字符串 hello[i] 转换为 int 数组?

private void generateY(){
    mApiInterface.getGulaDarah(idUser).enqueue(new Callback<ResponseBody>() {
        @Override
        public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
            if(response.isSuccessful()){
                try{
                    JSONArray jsonRes = new JSONArray(response.body().string());
                    hello = new String[jsonRes.length()];

                    for(int i=0; i<jsonRes.length(); i++){
                        JSONObject jsonObject =  jsonRes.getJSONObject(i);
                        hello[i] =jsonObject.getString("guladarah_acak");
                        yAxisData2[]=Integer.parseInt(hello[i]);
                    }
                }catch (JSONException e){
                    e.printStackTrace();
                }catch (IOException e){
                    e.printStackTrace();
                }
            }
        }

        @Override
        public void onFailure(Call<ResponseBody> call, Throwable t) {

        }
    });
}

【问题讨论】:

  • "guladarah_acak" 这是什么结构......
  • 请发布json的结构。如果“guladarah_acak”是字符串并且您需要将其转换为int,您可以使用parseInt(),但您需要初始化yAxisData2,就像您使用它的大小初始化hello一样,然后您可以使用索引分配一个值。

标签: android arrays json


【解决方案1】:

你想要的不是很清楚,所以我将提供一些解决方案,希望至少有一个会被证明是有用的。

如果您想要将字符串数组转换为整数数组,您可以使用;

private int[] convert(String[] stringArray) {
    int integerArray[] = new int[stringArray.length];

    for (int i = 0; i < stringArray.length; i++) {
        integerArray[i] = Integer.parseInt(stringArray[i]); // You'll need to handle errors here
    }

    return integerArray;
}

虽然我建议你改用 List。

您也可以使用 Java 8 中提供的 Lambda 表达式;

int[] arrayOfInts = Arrays.asList(arrayOfStrings).stream().mapToInt(Integer::parseInt).toArray();

否则,如果您想要将单个字符串转换为可以使用的整数数组;

public int[] convert(String stringToConvert) {
    int[] intArray = new int[stringToConvert.length()];

    for (int i = 0; i < stringToConvert.length(); i++){
        intArray[i] = stringToConvert.charAt(i) - '0';
    }

    return intArray;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-07
    • 1970-01-01
    • 2012-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    相关资源
    最近更新 更多