写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格式):");
  }

  

Java的输入方式总结的更多相关文章

  1. java中输入方式Scanner和BufferedReader

    Scanner 在java.util包中,需要引入时可以用import java.util.*;或者import java.util.Scanner; 工作原理:通过new创建一个Scanner对象, ...

  2. 通过输入方式在Android上进行微博OAuth登录

    在微博认证方式里,基本的OAuth认证是必须要调整到跳转到第三方页面上进行授权的,例如下面的例子:     1.从http://open.weibo.com/wiki/index.php/SDK#An ...

  3. Java:输入输出流 java.io包的层次结构

    1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.Java的I/O流提供了读 ...

  4. JAVA配置&注解方式搭建简单的SpringMVC前后台交互系统

    前面两篇文章介绍了 基于XML方式搭建SpringMVC前后台交互系统的方法,博文链接如下: http://www.cnblogs.com/hunterCecil/p/8252060.html htt ...

  5. 使用Java命令行方式导入第三方jar包来运行Java程序的命令

    1.首先使用命令行进入到a.java所在的文件夹:(比如我的在D:\javaeeworkspace\SharedPS_WS\src\com\dyf\main 这样一个路径下,) d: 回车, cd D ...

  6. java中GET方式提交和POST方式提交

    java中GET方式提交的示例: /** * 获取关注列表; * @return */ @SuppressWarnings("unchecked") public static A ...

  7. Java的输入/输出操作

    Java的输入\输出机制 计算机的基本功能就是通过输入输出设备与外部其他设备尽心数据的交互,从其他设备读入数据叫做输入操作,将计算机内的数据写入到其他设备叫做输出操作.可以向计算机发送数据.又可以接受 ...

  8. java 使用面向对象方式实现录入学生信息,取出成绩最大值、最小值、平均值、对其进行排序

    题目: java 使用面向对象方式实现录入学生信息,取出成绩最大值.最小值.平均值.对其进行排序 gitup源码下载地址: https://github.com/benxiaohai8888/Java ...

  9. Tars | 第6篇 基于TarsGo Subset路由规则的Java JDK实现方式(下)

    目录 前言 1. 修改.tars协议文件 1.1 Java源码位置及逻辑分析 1.2 Java语言实现方式 1.3 通过协议文件自动生成代码 1.4 变更代码的路径 2. [核心]增添Subset核心 ...

随机推荐

  1. 【转】XenServer架构之XAPI

    一.XAPI对资源池的管理 作为XenServer的管理工具集,XAPI管理XenServer的主机,网络和存储.不管是OpenStack还是CloudStack,如果使用XenServer作为虚拟化 ...

  2. Spring 通知(Advice)和顾问(Advisor)

    AOP ( Aspect  Oriented Programming  面向切面编程)  在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译 ...

  3. splay最终模板

    来自wjmzbmr的splay模板 #include<cstdio> #include<iostream> #include<algorithm> using na ...

  4. 极路由2(极贰)在OpenWrt下定制自己的ss服务

    默认刷入的OpenWrt带的ss, 只有ss-redir服务, 但是在实际使用中, 很多时候还是希望访问直接通过正常网关, 只有少部分访问需要通过ss, 所以希望能配置成为ss-local服务. 在保 ...

  5. JSONP是如何工作的

    我对这个问题的探究来源于一个需求: 当访问某个页面的时候,需要向另外一个网站报告一下这次访问的信息. 其实发一个跨域的请求就能大致实现这个需求.我们发跨域的例子其实很常见,例如请求一个第三方的图片.引 ...

  6. redis3.0常用命令

    1.服务器启动 1)快捷启动 $redis-server 2)指定配置文件启动 $redis-server redis.conf 2.客服端启动 1)快捷无密码启动 $redis-cli 2)有密码和 ...

  7. HashMap

    HashMap的定义 public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, ...

  8. python实战(开发新浪微博应用)

    #coding=utf-8 """ 本应用主要功能 1.用户选择喜欢的标签加关注 2.获取用户粉丝中自己还没有关注的,->加关注,提高粉丝稳定性 3.获取用户关注列 ...

  9. Android源码——Broadcast Receiver

    Android源码分析——广播 广播是一种在组件之间进行消息传递的方式.广播机制的实现是基于Binder进程间通信. Binder进程间通信和广播的差别:Binder中,Client组件和Servic ...

  10. 测试ajax发送数据时在控制台看不到请求信息

    都是因为我把alert(xmlhttp);alert(url);打印测试数据放到了xmlhttp.open("GET",url,true);之前,导致后面的发送请求不执行了!