怎么用java判定字符是否唯一

实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
示例 1:
输入: s = “leetcode”
输出: false
示例 2:
输入: s = “abc”
输出: true

public class Stringjudge {
    
    
	public static void main(String[] args) {
    
    
	//定义系统获取输入对象Scanner
		Scanner inScanner = new Scanner(System.in);
		//获取用户输入,且是字符串类型的
		String a = inScanner.next();
		//输入并调用函数
		System.out.println(isUnique(a));

	}
	public static boolean isUnique(String astr) {
    
    
	//第一步先定义字符b来等于astr,接下来比较两个字符串
		String b = astr;
		//第二步,定义第一层循环,也就是用户输入的字符串,从第一个字符开始比较
		for (int i = 0; i < astr.length(); i++) {
    
    
		//第三步,定义第二层循环,从astr里面循环拿一个字符与b里面的全部字符比较,
		//注意这里非常重要的一点就是要加&& i != j,以防止同样的字符自己和自己比较,
		//也是为了分开单个比较。
			for (int j = 0; j < b.length() && i != j; j++) {
    
    
				if (astr.charAt(i) == b.charAt(j)) {
    
    
				//第四步,如果有相同的字符直接返回true
					return true;
				}
			}
		}
		return false;

	}
}

方法二:利用set集合的不可重复性

class Solution {
    
    
   public static void main(String[] args) {
    
    
		Scanner inScanner = new Scanner(System.in);
		String a = inScanner.next();
		System.out.println(isUnique(a));
	}
	public static boolean isUnique(String astr) {
    
    
		char[] c1 = astr.toCharArray();
		// 第二步再新建一个set集合,集合里面放char类型的数据,放String就不行。
		Set<Character> set = new HashSet<>();
        for (int i = 0; i < c1.length; i++) {
    
    
			set.add(c1[i]);
		}
        if(set.size()==c1.length){
    
    
         return true; 
        }
		return false;
	}
}

猜你喜欢

转载自blog.csdn.net/qq_34134299/article/details/110822910
今日推荐