java - if block 如何删除重复字符?

标签 java

请你们中的一些人向我解释一下 if 部分在这段代码中到底是如何工作的 --

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.print("Input a word: ");
    String word = "Programming in Java.";
    String result = "";
    for (int i = 0; i < word.length(); i++){

        // ***** HERE *****
        if (word.indexOf(word.charAt(i)) == i){
            result += word.charAt(i);
        }
        // *****

    }
    System.out.println(result);
}

代码正在删除所有重复字符,我无法确定它到底是如何做到这一点的,我想在继续学习之前完全了解它是如何工作的。

最佳答案

我建议您引用String.indexOf(int) Javadoc其中说(部分)

Returns the index within this string of the first occurrence of the specified character.

当您说 if(word.indexOf(word.charAt(i)) == i) 时,这与说当前 char 是否是第一个是相同的当前 char 的出现将其附加到结果。否则不要附加它。因此,它仅在角色首次出现时添加角色。

关于java - if block 如何删除重复字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53251779/

相关文章:

java - 用java加载图像占用了我太多的资源..有什么方法可以让我的程序看起来很漂亮?

java - XML 动画在开始和结束时加速和减速,尽管使用了 linear_interpolator

java - 使用 sql 连接 swings

java - 我将如何跨多行搜索一串单词

java - 我编辑 vim 配置文件并发生错误(在 MS Windows 上,错误显示 "don' t Know "%\"选项)

java - 如何在 Java 项目中使用 Android 的 LogCat?

java - JList 换行问题

java - 从日历创建自定义日期对象?

java - Camel 聚合器异常

java - LinkedHashSet 似乎要留下重复的元素