写java代码的时候,经常会遇到的情况就是输入输错了怎么办?大部分想的是用一个if判断,但是用if判断的话我们就无法让用户再次输入,因为if语句程序执行后就会直接退出程序。因此要想实现循环就要用while(),将输入语句放到里面实现循环。关于输入,一共有两种方式:

  <1>使用字符串输入  -->  使用这个只能输入字符串,然后转换为你想要的

    BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); 
    bf.readLine();
  <2>使用Scanner,这个的话也只有输入字符串才不会报错,若你定义为输入整型,那么输入其他类型的话就会报错,可以这么说Scanner本身就是一个异常。
  下面分别举例说明:
  1、while()判断输入是否正确,同时给第二次输入的机会    ---   这个里面也有Scanner的使用就不再举例
  这个方法是用于判断第二次输入的字符串是否是第一次输入的字串

  private void replaceMethed() {
    Scanner s = new Scanner(System.in);
    System.out.println("===欢迎使用===");
    System.out.print("请输入一串字符串:");
    String str = s.next();
    while (true) {
      System.out.print("请输入上面的字符串的一个字串:");
      String subStr = s.next();
      int index = str.indexOf(subStr);
      // 只要索引不为-1,就是后面输入的字符串是前面字符串的一个字串
      if (index != -1) {
        // 字符串替换,用"hello"替换subStr
        str = str.replaceAll(subStr, "hello");
        System.out.println("替换后的字符串为:" + str);
        break;
      } else {
        System.out.println("您输入的字符串有误,请重新输入!");
      }

    }
  }

  2、BufferedReader输入

  BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
  String startTime = null; // 输入的上机时间
  Date startDate = null; // 格式转换后的上机时间
  while (true) {
  try {
    System.out.print("请输入上机时间(hh:mm格式):");
    startTime = bf.readLine();
    startDate = sdf.parse(startTime);

    //如果没有输出就跳出循环
    break;
  } catch (ParseException e) {
    System.out.println("格式错误,请重新上机时间(hh:mm格式):");
  }

  

posted on 2016-05-12 18:51  依米妮  阅读(411)  评论(0编辑  收藏  举报