首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在java中删除字符串中的重复字符,而不使用字符串函数

在java中删除字符串中的重复字符,而不使用字符串函数
EN

Stack Overflow用户
提问于 2015-10-23 17:33:26
回答 5查看 1.5K关注 0票数 1

有没有人可以建议我如何在java中删除字符串中的重复字符,也可以不使用字符串函数。

正如我所知,我们将一个给定的字符串转换为字符数组,然后我们可以使用TreeSet来删除重复项。但是ToCharArray仍然是一个字符串函数。

EN

回答 5

Stack Overflow用户

发布于 2015-10-23 17:35:06

您可以创建一个Scanner来读取该字符串,就像您通过流读取它一样。

代码语言:javascript
复制
    String input = "Hello World";
    Scanner scanner = new Scanner(input);
    scanner.useDelimiter("");
    while(scanner.hasNext()) {
        System.out.println(scanner.next());
    }

收益率:

代码语言:javascript
复制
H
e
l
l
o

W
o
r
l
d
票数 1
EN

Stack Overflow用户

发布于 2015-10-23 20:56:40

所有其他答案都是通过使用其他类来绕过字符串方法的使用,例如StringBuilder或Scanner。但是,它们仍然在使用String方法,尽管是间接的,因为这些其他类本身也使用String方法。我的解决方案有点“淘气”,而且是特定于jdk的,但至少它根本不使用任何字符串方法:

代码语言:javascript
复制
    String s = "hello";
    Class<String> c = (Class<String>) Class.forName("java.lang.String");
    Field f = c.getDeclaredField("value");
    f.setAccessible(true);
    char[] array = (char[]) f.get(s);

..。然后完全在数组上进行处理。

看,没有使用字符串方法!;-)

票数 1
EN

Stack Overflow用户

发布于 2015-10-23 18:43:51

charAt和长度来自接口CharSequence

因此,使用StringBuilder,并使用这些方法的it实现。

代码语言:javascript
复制
StringBuilder sb = new StringBuilder("My My My");

并使用

代码语言:javascript
复制
sb.length()

结合使用

代码语言:javascript
复制
sb.chartAt(index);

您可以遍历您的字符串构建器,识别重复项,然后使用

代码语言:javascript
复制
sb.deleteCharAt(index_of_char_to_delete);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33299111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档