【发布时间】:2019-11-26 17:58:18
【问题描述】:
我必须编写一个函数,该函数接受一个字符串并将用户输入中第二高的数字作为整数返回。这些是我必须遵守的规则:
- 没有数字的输入应返回 -1
- 只有一位数字的输入应返回 -1
- 应忽略非数字字符
- 应单独处理每个数字输入,这意味着如果出现联合最高位,则第二高位也将是最高位
我的代码:
public static int secondDigit(String input) {
try {
int userInput = Integer.parseInt(input);
char[] array = input.toCharArray();
int biggest = Integer.MIN_VALUE;
int secondBiggest = Integer.MIN_VALUE;
for(int i =0; i < array.length; i++)
{
System.out.println("Array: "+array[i]);
for(int j = 0; j < array[i]; j++)
{
if(array[i] > biggest)
{
secondBiggest = biggest;
biggest = array[i];
}
else if(array[i] > secondBiggest && array[i] != biggest)
{
secondBiggest = array[i];
}
}
}
System.out.println(secondBiggest);
return userInput;
}catch(Exception e) {
System.out.println("-1");
}
return -1;
// Your code goes here
}
"abc:1231234" 应该返回 3
“123123”应该返回 3
目前这是代码,当我输入“123123”时它返回 51。
【问题讨论】: