请其中的一些人向我解释一下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);
}
该代码删除了所有重复的字符,我不能完全按照它的操作方式来指责,我想在继续学习之前完全理解它的工作方式。
答案 0 :(得分:3)
我请您参考String.indexOf(int)
Javadoc,其中说(部分)
返回指定字符首次出现在该字符串中的索引。
当您说if(word.indexOf(word.charAt(i)) == i)
时,与说当前char
是否是当前char
的第一个出现是相同的,将其附加到result
上。否则,请勿附加。因此,仅在字符首次出现时才添加字符。