我想知道我是否可以获得输入的最后一位数字,但如果最后一位数字为0,我希望它忽略它并取出它之前的那个...就像bob120,最后一位数字是20而不是0,使它成为人的水平
这是我的代码,我试了2天才知道我是怎么回事这个问题。 我尝试了%10但仍然是同样的问题。
number = number.substring(5,6);
level = Integer.parseInt(number);
我正在使用扫描包
提前谢谢
答案 0 :(得分:1)
如果输入是一个字符串,并且您喜欢使用子字符串,那么代码将是
int pos= number.lenght();
String lastChar = number.substring(pos-1,pos);
注意:number是一个字符串:)...
然后你就在Integer.parseInt()
,如果它不是一个数字(尝试,捕捉),请注意错误......
然后你需要一个if语句......改变你的位置再试一次......
要完成这项任务,最好使用String.toCharArray()
向后循环...所以如果你有时间研究这个......
这样的事情:
public int getLastNumDifThenZero(String text){
char[] ca = text.toCharArray();
for (int i = ca.length-1; i >= 0; i--) {
char a = ca[i];
try {
int n = Integer.parseInt(String.valueOf(a));
if (n!=0){
return n;
}
} catch (NumberFormatException e) {
//Not a number
}
}
return -1;
}
答案 1 :(得分:0)
你可以从String的结尾循环并搜索'非零'值(结果char是String):
public static void main(String[] args) {
// example returns 7
String num = "85677000";
char lastDigit =' ';
// looping from end and searching non zero digit
for(int i=num.length()-1 ; i>=0 ;i--){
lastDigit=num.charAt(i);
if (lastDigit != '0'){
System.out.println(lastDigit);
break;
}
}
}