Java 将字符串子集转换为数组变量的最佳方法是什么?

Java 将字符串子集转换为数组变量的最佳方法是什么?,java,arrays,string,type-conversion,integer,Java,Arrays,String,Type Conversion,Integer,我有一根这样的绳子 abc 1/2/3 3/4/5 4/5/6 6/7/7 efg 1 2 3 4 ... 我想把它变成一个世界 String[] abc = {1/2/3, 3/4/5, 4/5/6, 6/7/7} int[] efg = {1, 2, 3, 4} 其中abc、efg不是硬编码的变量,而是从字符串中获取的变量。我的示例代码不起作用,所以我不在这里发布它。请让我知道实现这一目标最有效的方法是什么。谢谢 这里有一个工作脚本,它非常接近您所述的需求。它生成一个键名映射,其中包含字

我有一根这样的绳子

abc 1/2/3 3/4/5 4/5/6 6/7/7 efg 1 2 3 4 ...
我想把它变成一个世界

String[] abc = {1/2/3, 3/4/5, 4/5/6, 6/7/7}
int[] efg = {1, 2, 3, 4}

其中abc、efg不是硬编码的变量,而是从字符串中获取的变量。我的示例代码不起作用,所以我不在这里发布它。请让我知道实现这一目标最有效的方法是什么。谢谢

这里有一个工作脚本,它非常接近您所述的需求。它生成一个键名映射,其中包含字符串数组的值。我并没有将工作映射到不同类型的数组,这只会增加复杂性,甚至可能超出了您打算用这段代码执行的操作范围

Map<String, String[]> map = new HashMap<>();
String input = "abc 1/2/3 3/4/5 4/5/6 6/7/7 efg 1 2 3 4";
String[] exps = input.split("\\s+(?=[A-Za-z]+)");
for (String exp : exps) {
    String[] parts = exp.split("\\s+");
    map.put(parts[0], Arrays.copyOfRange(parts, 1, parts.length));
}

// iterate each name, and then print out each string in a given array
for (Map.Entry<String, String[]> entry : map.entrySet()) {
    for (String val : entry.getValue()) {
        System.out.println(entry.getKey() + ": " + val);
    }
}

abc: 1/2/3
abc: 3/4/5
abc: 4/5/6
abc: 6/7/7
efg: 1
efg: 2
efg: 3
efg: 4

这是一个工作脚本,它非常接近您所陈述的需求。它生成一个键名映射,其中包含字符串数组的值。我并没有将工作映射到不同类型的数组,这只会增加复杂性,甚至可能超出了您打算用这段代码执行的操作范围

Map<String, String[]> map = new HashMap<>();
String input = "abc 1/2/3 3/4/5 4/5/6 6/7/7 efg 1 2 3 4";
String[] exps = input.split("\\s+(?=[A-Za-z]+)");
for (String exp : exps) {
    String[] parts = exp.split("\\s+");
    map.put(parts[0], Arrays.copyOfRange(parts, 1, parts.length));
}

// iterate each name, and then print out each string in a given array
for (Map.Entry<String, String[]> entry : map.entrySet()) {
    for (String val : entry.getValue()) {
        System.out.println(entry.getKey() + ": " + val);
    }
}

abc: 1/2/3
abc: 3/4/5
abc: 4/5/6
abc: 6/7/7
efg: 1
efg: 2
efg: 3
efg: 4

此字符串是否包含文本、数字或两者都包含?它同时包含两个。。但是变量名后面总是跟有四个值,这四个值应该是变量数组或列表的一部分?也就是说,它类似于映射数据-请注意,数据是变量,“abc”和“efg”都是其中的条目,每个条目表示一系列字符串。。这与psuedo代码不同,psuedo代码没有多大用处,因为Java是静态类型的(这个问题并没有假定Java代码生成器)。请求包含不同类型数组的输出是一个混乱的问题。您是否认为只返回字符串数组是可以接受的?请明确表述您的问题。不清楚您在问什么。此字符串是否包含文本、数字或两者都包含?它同时包含两个。。但是变量名后面总是跟有四个值,这四个值应该是变量数组或列表的一部分?也就是说,它类似于映射数据-请注意,数据是变量,“abc”和“efg”都是其中的条目,每个条目表示一系列字符串。。这与psuedo代码不同,psuedo代码没有多大用处,因为Java是静态类型的(这个问题并没有假定Java代码生成器)。请求包含不同类型数组的输出是一个混乱的问题。您是否认为只返回字符串数组是可以接受的?请明确表述您的问题。不清楚你在问什么。嗨,谢谢。如果在代码后面,我必须使用值2(例如efg[1]),我如何从地图中引用它?嗨,谢谢。如果在代码的后面,我必须使用值2(例如efg[1]),我如何从映射中引用它?