在下面的代码中,我试图检查int(转换为String)是否包含重复的数字.
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;
}
Run Code Online (Sandbox Code Playgroud)
我加入了这些System.out.println行,因为我不确定为什么我的方法不起作用.它们总是打印出'-1'.我不明白索引如何-1,以及为什么它不起作用.
number.indexOf(digit)
Run Code Online (Sandbox Code Playgroud)
digit是一个int.传递给indexOf它将用作字符编号,因此您将寻找char 0(空字符)而不是ASCII数字'0'.当然,这个字符不在字符串中,所以你得到-1.
你可能正在考虑这种indexOf(String)方法.例如
var dstr= ""+digit;
if (number.indexOf(dstr) != number.lastIndexOf(dstr))
return true;
Run Code Online (Sandbox Code Playgroud)
或者,如果您想使用一系列字符代码:
for (char digit= '0'; digit<='9'; digit++)
if (number.indexOf(digit) != number.lastIndexOf(digit))
return true;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1443 次 |
| 最近记录: |