实际Java中是否存在Processing和Eclipse中的拆分功能?

问题描述

.split() 函数是否存在? 当我输入:

public class Main {
    public static void main(String[] args) {
        String numbers = "1,2,3,4,5";
        int[] numbers2 = (int[]) numbers.split(",");
    
        System.out.println(numbers2);
    }
}

它说:

Main.java:4: error: incompatible types: String[] cannot be converted to int[]
    int[] numbers2 = (int[]) numbers.split(",");
                                          ^
1 error

解决方法

numbers.split(",") 返回一个 String 数组。您可以使用以下命令将 String 数组映射到 int 数组。

int[] numbers2 = Arrays.stream(numbers.split(",")).mapToInt(Integer::parseInt).toArray();
,

是的,引用类型 String 的方法 String[] split (String regex) 存在,这里是 Java SE 11 的引用 https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html#split(java.lang.String)

但是您试图将引用类型String的变量强制转换到原始int类型的数组,这是无法直接实现的在 Java 中,无需解析

  1. 将您的字符串变量拆分为字符串数组

    String numbers = "1,2,3,4,5";
    String[] numbersSplitted = numbers.split(",");
    
  2. 将字符串数组解析为整数数组

    int [] numbersParsed = new int[numbersSplitted.length];
    for(int i = 0; i < numbersSplitted.length; i++){
        numbersParsed[i] = Integer.parseInt(numbersSplitted[i]);
    }
    
  3. 将解析后的数组或解析后的数组的每个元素打印到控制台

    System.out.println(Arrays.toString(numbersParsed));

     // or print each element of the parsed array
    
     for (int val : numbersParsed) {
         System.out.println(val);
     }
    

希望这会有所帮助!