为了账号安全,请及时绑定邮箱和手机立即绑定

有没有办法在java中切断字符串数组(不使用循环)并直接转换为整数?

有没有办法在java中切断字符串数组(不使用循环)并直接转换为整数?

倚天杖 2021-09-15 14:56:11
这是我想要实现的目标。输入:51 2 3 -4 -5 -6 -7 -8 -9预期输出:The list is 1 2 3 -4 -5.There are 3 positive numbers and 2 negative numbers.示例代码:String[] s = sc.nextLine().split(" ");for(int i=0;i<n;i++){    ...}System.out.printf("The list is %s.\nThere are %d positive numbers and %d negative numbers",(s.toString().substring(0,n)),pos,neg);sc.close();现在输出:The list is [Ljav.There are 3 positive numbers and 2 negative numbers.尝试应用Integer.parseint(s.toString().substring(0,n)),%d但也得到了与上面相同的输出。如何纠正这个?
查看完整描述

3 回答

?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

您可以使用Arrays.asList和streamAPI去解决。limit在你的情况下,我曾经将记录数限制为 5。如果您的病情发生变化,您可以使用filter并将您的病情放在那里。下面是一个关于如何完成的小代码片段


public static void main(String[] args) {

    String[] s = "1 2 3 -4 -5 -6 -7 -8 -9".split(" ");

    Arrays.asList(s).stream().limit(5).forEach(System.out::print); // filter

   // or use below to get the first five element list

   Arrays.asList(s).stream().limit(5).collect(Collectors.toList());

}


查看完整回答
反对 回复 2021-09-15
?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

您可以尝试字符串操作。


@Test

public void stringManipulationForArray() {


    int[] intArray = {1,2,3,4,5,6,7,8};

    final String arrayAsStr = Arrays.toString(intArray);

    System.out.println(arrayAsStr );

    final String numbersWithCommas = arrayAsStr .substring(1, s.length() - 1);

    System.out.println(numbersWithCommas);

    final String numbersWithoutCommas = numbersWithCommas.replace(",", "");

    System.out.println(numbersWithoutCommas);

}


查看完整回答
反对 回复 2021-09-15
?
守候你守候我

TA贡献1802条经验 获得超10个赞

尝试Arrays.toString(s)代替s.toString().


更正后的代码如下所示:


String[] s = sc.nextLine().split(" ");

for(int i=0;i<n;i++)

{

    ...

}

System.out.printf("The list is %s.\nThere are %d positive numbers and %d negative numbers",(Arrays.toString(s).substring(0,n)),pos,neg);

sc.close();


查看完整回答
反对 回复 2021-09-15
  • 3 回答
  • 0 关注
  • 204 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信