有题目如图
我的思路是 现输入一个String的字符串 digits
如果digits的长度不等于9 ,提示重新输入digits 直到长度为9
如果digits的长度等于9 然后把字符串 digits 转换成char 数组 。判断char数组每一位字符是否是数字
如果不是 就提示重新输入digits 然后重新进行判断 长度和char数组中的字符 是否满足要求
import java.util.Scanner;
public class Exer9 {
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
System.out.println("Enter the first 9 digits of an ISBN as integer :");
// String [] arr=new String[10];
String digits = input.next();
int sum=0;
while (true){
if (digits.length() == 9) {
char arr[] = digits.toCharArray();
for (int i = 0; i < arr.length; i++) {
if (arr[i] > 57 || arr[i] < 48) {
System.out.println("输入的数据有非数字部分!"); //此处应该如何写?
return;
} else {
sum += (arr[i] - 48) * (i + 1);
}
}
break;
}
else {
System.out.println("输入错误,请重新输入:");
digits = input.next();
}
}
String s1=null;
if(sum%11==10)
{
s1="x";
}
else{
s1=Integer.toString(sum%11);
}
System.out.println(digits+s1);
}
}