繁体   English   中英

如何使用Java中的方法从巨大的字符串中删除相同的字符

[英]how to remove same characters from a huge string using method in java

我有一个10 ^ 1000个字符的字符串。在这里我们无法运行循环来逐个检查..那我该怎么办?

我喜欢

public class test {

public static void main(String[] args) {

    String input = new String("abbc");
    String output = new String();

    for (int i = 0; i < input.length(); i++) {
        for (int j = 0; j < output.length(); j++) {
            if (input.charAt(i) != output.charAt(j)) {
                output = output + input.charAt(i);
            }
        }
    }

    System.out.println(output);

}
}

我这样做是从字符串中删除所有重复的字符。但是当input.length()太大时,效率不高。

您可以尝试将字符串转换为char数组,并将其存储在LinkedHashSet中。 这样可以保留您的订购,并删除重复的商品

char[] chars = string.toCharArray();
Set<Character> charSet = new LinkedHashSet<Character>();
for (char c : chars) {
    charSet.add(c);
}

StringBuilder sb = new StringBuilder();
for (Character character : charSet) {
    sb.append(character);
}
System.out.println(sb.toString());

如果您的字符串具有分隔符,我认为您可以使用Set。

Set<String> set = new HashSet<String>(Arrays.asList(text.split(" ")));

或在Java 8中:

Set<String> set = Arrays.stream(text.split(" ")).collect(Collectors.toSet());

您可以维护一组字符( Set<Character> ),您已经遇到了0 ..(i-1)。

由于这是家庭作业的琐事,我将其留给了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM