首页 > 解决方案 > 从数组中获取不包含重复字符的字符串

问题描述

String[] arr = {"kolkata", "delhi", "pune", "mumbai"}

任何人都可以帮助我使用java代码从给定数组中获取字符串,其中字符串不应包含任何重复字符。

上述数组的输出应该是“pune”和“delhi”。

String[] arr = {"kolkata", "mumbai", "pune", "delhi"};


    for (int i = 0; i < arr.length; i++){

        String name = arr[i];
        char[] ch = name.toCharArray();
        boolean flag = false;

        for (int j=0; j < ch.length; j++){

            for (int k=0; k < ch.length; k++){
                if (ch[j] != ch[k]){
                    flag = true;
                    //break;
                }
            }
        }

        if (flag){
            System.out.println(arr[i]);
        }
    }

标签: java

解决方案


处理数组中的每个字符串,将字符串的长度与其中的区字符数进行比较。有很多方法可以做到这一点。其中一种方式如下图所示:

import java.util.Arrays;

public class Main {
    public static void main(String args[]) {
        String[] arr = { "kolkata", "delhi", "pune", "mumbai" };
        Arrays.stream(arr).forEach(s -> System.out.println(s + " has duplicate characters => " + hasDuplicateChars(s)));
    }

    static boolean hasDuplicateChars(String s) {
        return s.chars().distinct().count() != s.length();
    }
}

输出:

kolkata has duplicate characters => true
delhi has duplicate characters => false
pune has duplicate characters => false
mumbai has duplicate characters => true

推荐阅读