一、字符数组
String str = "Hello";
char[] charArray = str.toCharArray();
字符数组直接使用String内置的toCharArray(),即可轻松解决,但是有时候面试官并不想让你这么做,那该如何?其实也就是手写一下toCharArray()方法而已。
String str = "Hello";
char[] charArray = new char[str.length()]; // 创建字符数组,长度与字符串相同
for (int i = 0; i < str.length(); i++) {
charArray[i] = str.charAt(i); // 逐个获取字符并存储到字符数组中
}
完美解决。当然并不会有人用第二种。。。。。。。。
二、字符串数组
字符串转字符串数组,其实就是通过某个值或者某个位置进行分割,然后存入字符串数组中。
String str = "apple,banana,carrot";
String[] strArray = str.split(",");
三、整数数组
String str = "1 2 3 4 5";
String[] strArray = str.split(" ");
int[] intArray = new int[strArray.length];
for (int i = 0; i < strArray.length; i++) {
intArray[i] = Integer.parseInt(strArray[i]);
}
比较经典的一种,先将字符串变为字符串数组或者字符数组,再进行遍历,最后通过Integer.paseInt将字符转为数字即可。
那还有其他看起来就高大上的方法吗?在我学习java基础的路上,经常遇到高大上的方式就是和流挂钩,因为每次写流都能写一长串。那么一行代码能能搞定字符串向整数数组的转换吗?且看:
String s = "1 2 3 4 5";
int[] intArray = Arrays.stream(s.split(" ")).mapToInt(Integer::parseInt).toArray();
这段代码的作用是将字符串 s
按照空格进行分割,然后将分割后的每个子字符串转换为整数,并将这些整数存储在一个 int
类型的数组中。
s.split(" ")
:使用空格作为分隔符,将字符串s
分割成多个子字符串,并返回一个字符串数组。Arrays.stream(...)
:将上一步得到的字符串数组转换为一个流(Stream)对象。mapToInt(Integer::parseInt)
:对流中的每个元素执行映射操作,将其转换为整数。这里使用了方法引用Integer::parseInt
,将字符串转换为对应的整数值。toArray()
:将流中的元素收集到一个数组中。- 最后,将结果数组赋值给数组,它的类型是
int[]
,即整型数组
流的操作固然看起来花枝招展,但是很容易出错,而且也不容易记,所以还是多用一些正经操作最好。