我有像下面的代码中提到的字符串数组.我正在消除每个元素中存在的双引号但我必须在最后一个索引上执行额外的操作,因为我知道还有额外的双引号.
String array[] = new String[]{"\"Awesome Systems, Inc. - 357", "\"Awesome Systems, Inc - 357", "\"wpe_stage\""};
Arrays.stream(array).map((str) -> (str = str.trim())
.substring(1, str.length()))
.forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)
我得到的是像以下那样的输出
Awesome Systems, Inc. - 357
Awesome Systems, Inc - 357
wpe_stage"
Run Code Online (Sandbox Code Playgroud)
所需的输出如下 -
Awesome Systems, Inc. - 357
Awesome Systems, Inc - 357
wpe_stage
Run Code Online (Sandbox Code Playgroud)
如何使用流功能或lambda来完成此操作?有没有办法在流中选择最后一个索引,还是可以根据索引进行任何过滤?
为什么下面的代码没有给出预期的输出?在这里,我期待"a"和"b"范围之间的所有整数之和.虽然它适用于一些小输入.如果使用的逻辑是错误的或其他一些事情是错误的?
class RangeSum {
public static void main(String args[] ){
// BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
long i = Long.valueOf("99");
long j = Long.valueOf("1000000000000");
long ans = 0L;
/*if(i<0 || i>Math.pow(10, 18)){
//throw new Exception("Wroong Input.");
}
if(i<0 || i>Math.pow(10, 18)){
//throw new Exception("Wroong Input.");
}*/
if (j>i){
long sumTill_j = (j*(j+1))/2;
long sumTill_i = ((i-1)*i)/2;
ans = sumTill_j - sumTill_i;
System.out.println(ans);
}else{
long sumTill_i = (i*(i+1))/2;
long sumTill_j = ((j-1)*j)/2;
ans = sumTill_i - sumTill_j;
System.out.println(ans);
}
} …Run Code Online (Sandbox Code Playgroud)