将字母添加到Java标签



我想将所有小写字母添加到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的参数

最新更新