Java 分隔字符串中的整数和
给定一个分隔符Java 分隔字符串中的整数和,java,string,integer,sum,Java,String,Integer,Sum,给定一个分隔符字符串作为输入,将所有数字相加 例如: addNumbers("12 24 36") -> 72 addNumbers("12 12 100") -> 124 我尝试此操作时遇到数字格式异常 String a="12 34 4 676"; String b=a.replaceAll(" ", "+"); long num=Long.parseLong(a); 是的,因为12+34+4+676不是数字,而是表达式 在Java 8中,您可以执行以下操作: final
字符串
作为输入,将所有数字相加
例如:
addNumbers("12 24 36") -> 72
addNumbers("12 12 100") -> 124
我尝试此操作时遇到数字格式异常
String a="12 34 4 676";
String b=a.replaceAll(" ", "+");
long num=Long.parseLong(a);
是的,因为
12+34+4+676
不是数字,而是表达式
在Java 8中,您可以执行以下操作:
final int sum = Stream.of(a.split("\\s")).
mapToInt(Integer::parseInt).
sum();
在Java 7中,您可以执行以下操作:
int sum = 0;
for (final String s : a.split("\\s")) {
sum += Integer.parseInt(s);
}
OP评论:我不想使用数组 我喜欢挑战,因此这里有一个使用
扫描仪的解决方案:
final Scanner scanner = new Scanner(a);
int sum = 0;
while(scanner.hasNextInt()) {
sum += scanner.nextInt();
}
是的,因为12+34+4+676
不是数字,而是表达式
在Java 8中,您可以执行以下操作:
final int sum = Stream.of(a.split("\\s")).
mapToInt(Integer::parseInt).
sum();
在Java 7中,您可以执行以下操作:
int sum = 0;
for (final String s : a.split("\\s")) {
sum += Integer.parseInt(s);
}
OP评论:我不想使用数组
我喜欢挑战,因此这里有一个使用扫描仪的解决方案:
final Scanner scanner = new Scanner(a);
int sum = 0;
while(scanner.hasNextInt()) {
sum += scanner.nextInt();
}
无法分析包含运算符的字符串以直接获取值。使用Split(“\\s”)
将其拆分,然后在数组中循环并找到总和。您无法解析包含运算符的字符串以直接获取值。使用Split(“\\s”)
将其拆分,然后循环遍历数组并找到总和。将字符串按空格拆分,将每个部分解析为int,然后将它们添加到一起。因此,如果您输入“12 34”
您想要12++34
,请按空格拆分字符串,将每个部分解析为int,然后将它们添加到一起。如果您输入“12 34”
您希望Java 8使用12++34
?+1。我需要一段时间才能习惯Java新的类似Haskell的功能array@SumitKumarJadhav你想用什么?如果您对允许使用的内容有限制,它们应该是问题的一部分。没有数组,只有String和all String方法,并且为loop@SumitKumarJadhav在我看来,split
是一种String
方法。让你的要求更清楚。编辑您的问题。+1表示Java 8。我需要一段时间才能习惯Java新的类似Haskell的功能array@SumitKumarJadhav你想用什么?如果您对允许使用的内容有限制,它们应该是问题的一部分。没有数组,只有String和all String方法,并且为loop@SumitKumarJadhav在我看来,split
是一种String
方法。让你的要求更清楚。编辑你的问题。如果我循环一遍,我会得到每个字符的和,这里我要的是数字的和spaced@SumitKumarJadhavstr.split(\\s”)
返回字符串数组。他建议你循环,如果我循环,我会得到每个字符的和,这里我要的是数字的和spaced@SumitKumarJadhavstr.split(\\s”)
返回字符串数组。他建议你循环一下。