if块如何删除重复字符?

时间:2018-11-11 18:19:18

标签: 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);
}

该代码删除了所有重复的字符,我不能完全按照它的操作方式来指责,我想在继续学习之前完全理解它的工作方式。

1 个答案:

答案 0 :(得分:3)

我请您参考String.indexOf(int) Javadoc,其中说(部分)

  

返回指定字符首次出现在该字符串中的索引。

当您说if(word.indexOf(word.charAt(i)) == i)时,与说当前char是否是当前char的第一个出现是相同的,将其附加到result上。否则,请勿附加。因此,仅在字符首次出现时才添加字符。