package rw;import java.util.Scanner;public class Num2RMB {
private String[] hanArr = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
private String[] unitArr = {"拾","佰","仟"};
//传入数字字符串,将其转化成对应的人民币写法
public String toHanStr(String numStr){
String result = "";
int numLen = numStr.length();
for(int i =0;i<numLen;i++){
int num = numStr.charAt(i) - 48;//表达式类型的自动提升
if(i!=numLen-1&&num!=0){
result += hanArr[num] + unitArr[numLen-2-i];
}
else{
result += hanArr[num];
}
}
return result;
}
public static void main(String[] args){
Num2RMB nr = new Num2RMB();
int f = 0;
String str = null;
Scanner sc = new Scanner(System.in);
//从键盘接收数据
System.out.println("请输入数据:");
if(sc.hasNextInt()){
f = sc.nextInt();
str = "" + f;
System.out.println(nr.toHanStr(str));
}
else{
System.out.println("您输入的不是整型数字");//如果用户输入的数据不是整型,会执行这个打印语句,我想
实现的是在提示了这个打印语句后再次让用户输入整型数据再进行判断,当错误次数(不是整型数据)达到3次后再退出程序 ,怎么实现?
} }}

解决方案 »

  1.   

    import java.util.Scanner;public class Num2RMB
    {
    private String[] hanArr = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌",
    "玖" };
    private String[] unitArr = { "拾", "佰", "仟" }; // 传入数字字符串,将其转化成对应的人民币写法
    public String toHanStr(String numStr)
    {
    String result = "";
    int numLen = numStr.length();
    for (int i = 0; i < numLen; i++)
    {
    int num = numStr.charAt(i) - 48;// 表达式类型的自动提升
    if (i != numLen - 1 && num != 0)
    {
    result += hanArr[num] + unitArr[numLen - 2 - i];
    }
    else
    {
    result += hanArr[num];
    }
    }
    return result;
    } public static void main(String[] args)
    {
    Num2RMB nr = new Num2RMB();
    int f = 0;
    String str = null;
    // 从键盘接收数据
    while (true)
    {
    start();
    Scanner sc = new Scanner(System.in);
    if (sc.hasNextInt())
    {
    f = sc.nextInt();
    str = "" + f;
    System.out.println(nr.toHanStr(str));
    }
    else
    {
    count++;
    System.out.println("您输入的不是整型数字");
    if (count == 3)
    {
    System.out.println("达到三次,系统退出...");
    System.exit(1);
    }
    }
    }
    } public static void start()
    {
    System.out.println("请输入阿拉伯数字:");
    } static int count = 0;
    }
      

  2.   

    将if改成如下:
     int count = 3;
              while(! sc.hasNextInt() && --count > 0){
              sc.next();
              }
              if(count <=0){
              System.out.println("您输入的不是整型数字");
              }
      

  3.   

    package rw;import java.util.Scanner;public class Num2RMB {
    private String[] hanArr = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
    private String[] unitArr = {"拾","佰","仟"};
    //传入数字字符串,将其转化成对应的人民币写法
    public String toHanStr(String numStr){
    String result = "";
    int numLen = numStr.length();
    for(int i =0;i<numLen;i++){
    int num = numStr.charAt(i) - 48;//表达式类型的自动提升
    if(i!=numLen-1&&num!=0){
    result += hanArr[num] + unitArr[numLen-2-i];
    }
    else{
    result += hanArr[num];
    }
    }
    return result;
    }
    public static void main(String[] args){
    Num2RMB nr = new Num2RMB();
    int f = 0;
                    int temp = 0;
    String str = null;
    Scanner sc = new Scanner(System.in);
    //从键盘接收数据
    System.out.println("请输入数据:");
                    while(true){
                        if(sc.hasNextInt()){
                                f = sc.nextInt();
                                str = "" + f;
                                System.out.println(nr.toHanStr(str));
                                break;
                        }
                        else{
                                temp++;
                                if(temp == 3){
                                    System.out.println("您输入的错误次数达到3次,程序强制退出!");
                                    break;
                                }
                                System.out.println("您输入的不是整型数字");
                                sc.next();
                        }
                    } }}
    谢谢楼上的 ,我自己弄出来了,这样也行