这个问题
one two three four five six seven eight
one two THREE FOUR FIVE SIX seven eight
我不喜欢它如何改变数组的位置,以及它如何需要两个流。有更好的办法吗?
import static java.util.stream.Collectors.joining;
import java.util.Arrays;
import java.util.stream.IntStream;
public class UpperCaseElementsInIndexRangeViaIntStream {
public static void main(String[] ignored) {
final String input = "one two three four five six seven eight";
final int MIN_IDX = 2;
final int MAX_IDX = 5;
final String[] splits = input.split(" ");
//Filter only those in range
String output = IntStream.range(0, splits.length).
filter(idx -> MIN_IDX <= idx && idx <= MAX_IDX).
mapToObj(i -> splits[i]).
collect(joining(" "));
System.out.println(output);
//Change the array in place, capitalizing only those in range
IntStream.range(0, splits.length).forEach(idx -> {
final String split = splits[idx];
splits[idx] = (MIN_IDX <= idx && idx <= MAX_IDX)
? split.toUpperCase() : split;
});
output = Arrays.stream(splits).collect(joining(" "));
System.out.println(output);
}
}
产出:
three four five six
one two THREE FOUR FIVE SIX seven eight
下面是一个没有stream
的解决方案。使用子列表
以列表
的形式获取所需范围的视图。然后使用ReplaceAll
就地转换元素。
List<String> all = Arrays.asList(splits);
all.subList(MIN_IDX, MAX_IDX + 1).replaceAll(String::toUpperCase);
// use 'all' as needed
注意,ReplaceAll
的第二个参数是独占索引值。
问题内容: 例如,我有一个数字数组 我想找到特定范围内元素的所有索引。例如,如果范围是(6,10),则答案应该是(3,4,5)。有内置的功能可以做到这一点吗? 问题答案: 您可以用来获取索引并设置两个条件:
本文向大家介绍在Python中删除范围内的元素,包括了在Python中删除范围内的元素的使用技巧和注意事项,需要的朋友参考一下 通过使用元素的索引和del函数,可以直接从python删除单个元素。但是在某些情况下,我们需要删除一组索引的元素。本文探讨了仅删除索引列表中指定的列表中那些元素的方法。 使用排序和删除 在这种方法中,我们创建一个包含必须删除的索引值的列表。我们对它们进行排序和反转以保留列
我正在尝试编写一个素数筛生成器,我将其转换为打印列表,然后在给定范围内打印素数。我很确定我的配对数是正确的,但出于某种原因,我在素数列表中得到了一些非素数的额外值。(我马上发现了这一点,因为我在输出中的最后一个值是3599,这不是素数)。我不确定我是否有某种逻辑错误,所以任何帮助都很棒。
我正在与JSoup合作,以下是我的代码: 这是页面: 我想得到以下元素的值: itemPrice,_18gRm, itemtitle,_2FRXm 谢谢大家。
对于我的Java类,我正在编写一个小程序,首先选择一个介于1和100之间的数字。然后,它会提示用户开始猜测正确的。如果用户对的猜测过高或过低,程序会打印出一个新范围,供他们在该范围内进行猜测。如果用户输入或,程序只需重新要求用户输入,但不会以任何方式更改范围。 示例输出(当机密号为20时)如下所示: 该项目似乎已经基本完成,但只有一个例外。其中一个要求是,当用户键入的超出我们给定的1和100范围时
嗨,伙计们,我需要一个关于堆栈的小帮助。Pop()函数。我知道堆栈可以一个接一个地弹出元素,但是我需要不止一个元素才能弹出。例如,我在堆栈中有5个元素(4,3,2,1,0),现在我想弹出前3个或2个元素,直到堆栈索引达到1或2。现在我有“for”循环,它不能正常工作: 有人能帮我吗,让他弹出一定范围的元素?谢谢!