java找重复字符串_在java中怎样查找重复字符串
在一段java編程代碼中,字符串是不可缺少的一個(gè)要素,屬于java中的基礎(chǔ)知識(shí),字符串不僅在java面試題中會(huì)出現(xiàn),在編寫代碼時(shí)更要掌握怎樣使用字符串。在前面我們也學(xué)習(xí)過(guò)關(guān)于字符串截取的知識(shí),你應(yīng)該有所掌握吧、格式化字符串也是比較重要的內(nèi)容,今天我們學(xué)習(xí)怎樣查找重復(fù)字符串,在實(shí)際的工作中也會(huì)遇到查找重復(fù)字符串的需要。
先看一個(gè)在java中查找重復(fù)字符串的例子,為大家提供一個(gè)思路:先循環(huán)整個(gè)字符串,用到了map的鍵值對(duì),判斷map的key
是否存在,map不存在就賦值字符當(dāng)map的key ,value
為1。map.put(s.charAt(i),1);當(dāng)map存在時(shí),就在當(dāng)前value值之上+1操作,map.put(s.charAt(i),map.get(s.charAt(i))+1);
結(jié)果是{a=3, b=3, c=3, d=2, t=3}。注意:map中泛型 Character 為char的包裝類,也可以使用Object代替。
關(guān)于解決在java中怎樣查找重復(fù)字符串這個(gè)問(wèn)題的標(biāo)準(zhǔn)方法是從String中獲取字符數(shù)組,遍歷它并構(gòu)建一個(gè)包含字符及其計(jì)數(shù)的Map。然后遍歷該Map并打印出現(xiàn)不止一次的字符。所以你實(shí)際上需要兩個(gè)循環(huán)來(lái)完成這項(xiàng)工作,第一個(gè)循環(huán)來(lái)構(gòu)建地圖,第二個(gè)循環(huán)來(lái)打印字符和計(jì)數(shù)。
查看下面的例子,只有一個(gè)名為printDuplicateCharacters()的靜態(tài)方法,它可以同時(shí)執(zhí)行這兩項(xiàng)工作。我們首先通過(guò)調(diào)用toCharArray()從String中獲取字符數(shù)組。接下來(lái)使用HashMap來(lái)存儲(chǔ)字符及其計(jì)數(shù)。用containsKey()方法來(lái)檢查密鑰是否已經(jīng)存在,如果已經(jīng)存在,我們通過(guò)調(diào)用get()方法從HashMap獲取舊計(jì)數(shù),并在將其遞增1之后將其存儲(chǔ)回來(lái)。代碼如下:
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 String
Map 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 String
Set> 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());
}
}
}
}
如何在字符串JavaOnce中找到重復(fù)的字符?我們用每個(gè)字符和計(jì)數(shù)構(gòu)建Map,接下來(lái)的任務(wù)是循環(huán)遍歷Map并檢查每個(gè)條目,如果count(條目的值大于1),那么該字符已經(jīng)發(fā)生了不止一次。可以打印重復(fù)的字符,也可以使用它們執(zhí)行任何操作。
Java實(shí)現(xiàn)查找重復(fù)字符串和字符串去重是經(jīng)常在開(kāi)發(fā)項(xiàng)目中出現(xiàn)的,也是大家需要會(huì)的技能。以上就是對(duì)在java中查找重復(fù)字符串問(wèn)題的回答,希望通過(guò)舉兩個(gè)例子的分析,大家能更好的學(xué)習(xí)怎樣實(shí)現(xiàn)查找重復(fù)字符串,想學(xué)習(xí)更多關(guān)于java字符串的知識(shí)的話,可以在本站的java教程中學(xué)習(xí)。
總結(jié)
以上是生活随笔為你收集整理的java找重复字符串_在java中怎样查找重复字符串的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 计算机组织与结构实验,计算机组织与结构实
- 下一篇: java中广告维护轮播图怎么做_Bann