我想将所有小写字母添加到Java标签。为此,我使用以下代码段:
for(char c = 'a'; c <= 'z'; c++)
set.add(c);
是否有更好的方法来执行此操作,就像我不必在所有字母上迭代的方法吗?
在Java 8中使用IntStream
,我认为您应该能够获得所有小写的Character
值:
Set<Character> set = IntStream.rangeClosed(Character.MIN_VALUE, Character.MAX_VALUE)
.filter(Character::isLowerCase)
.mapToObj(i -> Character.valueOf((char) i))
.collect(Collectors.toSet());
此Set<Character>
包含1,402 Character
对象。
如果您不想将char
值作为Character
对象,并且不介意使用第三方库,则可以使用Eclipse Collections进行以下操作:
CharSet charSet = IntInterval.zeroTo(Character.MAX_VALUE)
.asLazy()
.select(Character::isLowerCase)
.collectChar(i -> (char) i)
.toSet();
此CharSet
包含1,402 char
值。
如果您不想要所有小写字母,则只需将您的范围更改为所需的范围即可。例如:
CharSet charSet = IntInterval.fromTo('a', 'z')
.asLazy()
.collectChar(i -> (char) i)
.toSet();
注意:我是Eclipse Collections的参数