java找重复字符串_Java程序查找字符串的重复字符

解决这个问题的标准方法是从String中获取字符数组,遍历它并构建一个包含字符及其计数的Map。然后遍历该Map并打印出现不止一次的字符。所以你实际上需要两个循环来完成这项工作,第一个循环来构建地图,第二个循环来打印字符和计数。

查看下面的例子,只有一个名为printDuplicateCharacters()的静态方法,它可以同时执行这两项工作。我们首先通过调用toCharArray()从String中获取字符数组。

接下来我们使用HashMap来存储字符及其计数。我们使用containsKey()方法来检查密钥是否已经存在,如果已经存在,我们通过调用get()方法从HashMap获取旧计数,并在将其递增1之后将其存储回来。

如何在字符串JavaOnce中找到重复的字符?我们用每个字符和计数构建Map,接下来的任务是循环遍历Map并检查每个条目,如果count(条目的值大于1),那么该字符已经发生了不止一次。您可以打印重复的字符,也可以使用它们执行任何操作。

import java.util.HashMap;

import java.util.Map;

import java.util.Scanner;

import java.util.Set;

/**

* Java Program to find duplicate characters in String.

*

*

* @author http://java67.blogspot.com

*/public class FindDuplicateCharacters{

public static void main(String args[]) {

printDuplicateCharacters("Programming");

printDuplicateCharacters("Combination");

printDuplicateCharacters("Java");

}/*

* Find all duplicate characters in a String and print each of them.

*/public static void printDuplicateCharacters(String word) {

char[] characters = word.toCharArray();// build HashMap with character and number of times they appear in StringMap charMap = new HashMap();

for (Character ch : characters) {

if (charMap.containsKey(ch)) {

charMap.put(ch, charMap.get(ch) + 1);

} else {

charMap.put(ch, 1);

}

}// Iterate through HashMap to print all duplicate characters of StringSet> entrySet = charMap.entrySet();

System.out.printf("List of duplicate characters in String '%s' %n", word);

for (Map.Entry entry : entrySet) {

if (entry.getValue() > 1) {

System.out.printf("%s : %d %n", entry.getKey(), entry.getValue());

}

}

}

}

Output

List of duplicate characters in String 'Programming'

g : 2

r : 2

m : 2

List of duplicate characters in String 'Combination'

n : 2

o : 2

i : 2

List of duplicate characters in String 'Java'

这就是如何在String中查找重复字符的全部内容。 如果在编程工作面试中遇到此问题,您可以放心地编写解决方案并解释它们。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值