Java字符串去重按照ASCII編碼輸出
問(wèn)題描述:
如何實(shí)現(xiàn)Java字符串去重,并按照ASCII編碼輸出去重后的字符串?
解答:
要實(shí)現(xiàn)Java字符串去重并按照ASCII編碼輸出去重后的字符串,可以采用以下步驟:
1. 創(chuàng)建一個(gè)空的StringBuilder對(duì)象,用于存儲(chǔ)去重后的字符。
2. 遍歷原始字符串中的每個(gè)字符,判斷是否已經(jīng)存在于StringBuilder中。
3. 如果字符不存在于StringBuilder中,則將其添加到StringBuilder中。
4. 將StringBuilder轉(zhuǎn)換為字符串并按照ASCII編碼進(jìn)行排序。
下面是一個(gè)示例代碼,演示了如何實(shí)現(xiàn)上述步驟:
`java
public class StringDuplicateRemoval {
public static String removeDuplicates(String input) {
StringBuilder sb = new StringBuilder();
boolean[] visited = new boolean[256]; // ASCII碼范圍為0-255
for (int i = 0; i < input.length(); i++) {
char c = input.charAt(i);
if (!visited[c]) {
sb.append(c);
visited[c] = true;
}
}
// 將StringBuilder轉(zhuǎn)換為字符串
String result = sb.toString();
// 按照ASCII編碼進(jìn)行排序
char[] chars = result.toCharArray();
Arrays.sort(chars);
return new String(chars);
}
public static void main(String[] args) {
String input = "aabbccddeeff";
String output = removeDuplicates(input);
System.out.println(output); // 輸出:abcdef
}
`
在上述示例代碼中,我們使用了一個(gè)boolean類型的數(shù)組visited來(lái)標(biāo)記每個(gè)字符是否已經(jīng)出現(xiàn)過(guò)。如果某個(gè)字符未出現(xiàn)過(guò),則將其添加到StringBuilder中,并將對(duì)應(yīng)的visited數(shù)組位置標(biāo)記為true。將StringBuilder轉(zhuǎn)換為字符串,并按照ASCII編碼進(jìn)行排序。
通過(guò)以上步驟,我們可以實(shí)現(xiàn)Java字符串去重并按照ASCII編碼輸出去重后的字符串。