gpt4 book ai didi

java - 如何存储字符串的不同字符

转载 作者:行者123 更新时间:2023-12-02 04:19:00 26 4
gpt4 key购买 nike

public class NoDuplicate { 
static final int NO_OF_CHARS = 256;

/* Print duplicates present in the passed string */
static void printDistinct(String str)
{
// Create an array of size 256 and count of
// every character in it
int[] count = new int[NO_OF_CHARS];

/* Count array with frequency of characters */
int i;
for (i = 0; i < str.length(); i++)
if(str.charAt(i)!=' ')
count[(int)str.charAt(i)]++;
int n = i;

// Print characters having count more than 0
for (i = 0; i < n; i++)
if (count[(int)str.charAt(i)] == 1)
System.out.print(str.charAt(i));
}

/* Driver program*/
public static void main(String args[])
{
String str = "SHINCHAN";
printDistinct(str);
}
}

我正在尝试将不同的字符存储在字符串中。问题是我的代码删除了所有重复的元素。示例:

Input: SHINCHAN

Actual output: SICA

Desired output: SHINCA (I want to store each element once)

最佳答案

您可以使用 LinkedHashSet 来实现相同的功能:

static void printDistinct(String str) {
Set<Character> origSet = new LinkedHashSet<Character>();
StringBuilder concat = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
if (origSet.add(str.charAt(i))) {
concat.append(str.charAt(i));
}
}
System.out.println(concat);
}
<小时/>

如果您使用的是 java-8,您可以这样做:

str.chars().mapToObj(e -> Character.toString((char) e))
.distinct()
.forEach(System.out::println);

关于java - 如何存储字符串的不同字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54966111/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com