java中如何将字符串数组转换为长度数组
我使用的是Java1.7,我需要将字符串数组转换为int数组,该数组包含字符串数组中每个元素的长度 提醒:我需要多次传递长度数组作为方法的参数,由于一些机密问题,我对传递字符串数组不感兴趣。这就是为什么我需要将长度存储为int数组 例如,我有一个字符串数组java中如何将字符串数组转换为长度数组,java,Java,我使用的是Java1.7,我需要将字符串数组转换为int数组,该数组包含字符串数组中每个元素的长度 提醒:我需要多次传递长度数组作为方法的参数,由于一些机密问题,我对传递字符串数组不感兴趣。这就是为什么我需要将长度存储为int数组 例如,我有一个字符串数组 String[] names = {"Jack", "Bob", "Alice"}; 我需要将它转换为元素长度的int数组 int[] lengths = {4, 3, 5}; 到目前为止,我尝试了以下方法,但是否有任何内置方法或更好的
String[] names = {"Jack", "Bob", "Alice"};
我需要将它转换为元素长度的int数组
int[] lengths = {4, 3, 5};
到目前为止,我尝试了以下方法,但是否有任何内置方法或更好的解决方案
public class ArrayLengthTest{
public static void main(String []args){
String[] names = {"Jack", "Bob", "Alice"};
int[] lengths = new int[names.length];
for (int i = 0; i < names.length; i++) {
lengths[i] = names[i].length();
}
System.out.println(java.util.Arrays.toString(lengths));// print [4, 3, 5]
method1(lengths);// passing length array
method2(lengths);// passing length array
method3(lengths);// passing length array
}
}
公共类数组长度测试{
公共静态void main(字符串[]args){
字符串[]名称={“杰克”、“鲍勃”、“爱丽丝”};
int[]长度=新的int[names.length];
for(int i=0;i
这通常不是必需的,所以没有内置的方法来创建包含每个字符串值长度的新数组
你提到的逻辑是正确的。您可以根据需要改进逻辑
如果有时需要使用长度(不重复),可以直接访问数组元素的长度。使用名称[i].length();在迭代中
如果您使用的是JDK1.8,那么saka的答案将有所帮助
int[] lengths = Stream.of(names).mapToInt(String::length).toArray();
但正如您所说的,您使用的是Java1.7,您只有迭代和手动创建数组的选项
public class ArrayLengthTest{
public static void main(String []args){
String[] names = {"Jack", "Bob", "Alice"};
int[] lengths = new int[names.length];
for (int i = 0; i < names.length; i++) {
lengths[i] = names[i].length();
}
System.out.println(java.util.Arrays.toString(lengths));// print [4, 3, 5]
method1(lengths);// passing length array
method2(lengths);// passing length array
method3(lengths);// passing length array
}
}
公共类数组长度测试{
公共静态void main(字符串[]args){
字符串[]名称={“杰克”、“鲍勃”、“爱丽丝”};
int[]长度=新的int[names.length];
for(int i=0;i
当JDK版本为1.8或更高版本时,请尝试此操作
int[] lengths = Stream.of(names).mapToInt(String::length).toArray();
如果您像上面所做的那样手动声明字符串数组,那么除了现有的方法之外,没有其他有效的方法,您使用的任何内置方法都将具有相同的复杂性。但是,如果您是动态构建字符串数组,那么您也可以在将每个字符串分配给字符串数组时构建长度数组。为什么不能在需要字符串长度时使用
名称[i].length()
?因为长度数组会被其他方法多次使用。请定义得更好,您可以将当前逻辑提取到方法中。您可以使用不同的循环,或者使用更有意义的变量名;实际上,您使用三行(完全合理的)代码来实例化和初始化长度
数组。@ati如果用户希望在迭代后执行复杂的操作,则需要存储数组中存储的字符串元素的长度。所以我提供了答案。@mmuzahid即使它被多次使用,names[I].length()
也可以正常工作<如果您担心的话,java中的code>String.length()是O(1)操作。看这里,谢谢你的努力。但我使用的是Java1.7。所以它帮不了我。