在下面的代碼中,我試圖檢查一個int(轉換爲String)是否包含重複數字。Java indexOf和lastIndexOf返回-1 ??請幫忙
public static boolean hasDupes(int n)
{
String number = new String();
number = Integer.toString(n);
int digit = 0;
System.out.println(num.indexOf(digit));
System.out.println(num.lastIndexOf(digit));
while(digit < 10)
{
if(number.indexOf(digit) != number.lastIndexOf(digit))
{
return true;
}
digit++;
}
//System.out.println(n);
return false;
}
我放在System.out.println
行,因爲我不能肯定,爲什麼我的方法是行不通的。他們總是打印'-1'。我不明白如何索引可以是-1,以及爲什麼它不工作。
指數-1意味着它不能在字符串中被發現。按照文檔... – EboMike 2010-10-28 23:09:01
你的printlns說「num」,但你的字符串被稱爲「數字」。 – 2010-10-28 23:15:08
我假設有一個拼寫錯誤,因爲你初始化'number'並且調用'num'上的方法。哦,永遠不要調用String構造函數,這是沒用的。只要'String number = Integer.toString(n);'而不是。 – 2010-10-28 23:23:17