【问题标题】:Java Convert String to Array "[1,2,3,4,5,5]" to [1,2,3,4,5,5]Java将字符串转换为数组“[1,2,3,4,5,5]”到[1,2,3,4,5,5]
【发布时间】:2021-05-08 05:06:21
【问题描述】:

我正在尝试转换格式为 a 的字符串

String x= "[\"a\",\"1\"]" ;

String [] vals =["a" , "1"];

我目前分两步进行

  1. 从字符串中删除 [ & ]​​i>
  2. 用逗号分隔字符串

String x2="\"a\",\"1\""

x2.split(",")

【问题讨论】:

  • 你有什么问题?
  • 你想实现什么,将字符串转换为整数数组?
  • 我想知道将 String 转换为 String [] 的最佳实践,它可以是数组到字符串

标签: java arrays string


【解决方案1】:

您可以使用org.json 包中的JSONArray 将字符串解析为数组。

import org.json.JSONArray;

public class Test {
    public static void main(String[] args) {
        String x = "[\"a\",\"1\"]";
        JSONArray jsonArray = new JSONArray(x);
        String [] stringArray = new String[jsonArray.length()];
        for (int i = 0; i < jsonArray.length(); i++) {
            stringArray[i] = jsonArray.getString(i);
        }
    }
}

对于整数数组,您可以改用getInt(i)

【讨论】:

    【解决方案2】:

    确切地说,我不知道您是想要一个字符串数组还是一个整数数组作为结果,但是对于您提供的示例,这应该可以工作。

    import java.util.Arrays;
    class HelloWorld {
        public static void main(String[] args) {
            String x = "[\"a\",\"1\"]";
            String[] array = x.split("\"");
            array = Arrays.stream(array).filter(i -> i.matches("[\\dA-Za-z]")).toArray(String[]::new);
            System.out.println(Arrays.toString(array)); 
        }
    }
    

    我已经过滤了数组,因为最初会有一些空字符串以及作为字符串的打开和关闭大括号。

    【讨论】:

      【解决方案3】:

      你可以在字符串上使用 ObjectMapper

      List list = new ObjectMapper().readValue(x, List.class); // list of object
      

      将它们转换为您需要的类

      【讨论】:

      • 大家好,所有答案都有效,谢谢您的帮助
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-06
      • 2013-12-19
      • 2011-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多