`
风子柒
  • 浏览: 55564 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

你输入,或者不输入,我就在那里,不进不退!

阅读更多
   今天在学习异常机制时,我突然想到了C语言中的数据处理机制,于是乎,我就做了一个实验,以期洞悉Java中的数据处理机制。直接上代码吧:
    public class ExceptionTest {

/**
* 主函数
*/
public static void main(String[] args) {

//创建一个ExcptionTest对象
ExceptionTest et = new ExceptionTest();

//创建一个Scanner对象
Scanner sc = new Scanner(System.in);

//从控制台得到一个输入(整数)
System.out.println("请输入一个数字:");
int num1 = sc.nextInt();

//打印得到的数字
System.out.println("输入的数字是:" + num1);

//再得到另外一个数字
System.out.println("请输入另一个数字:");
int num2 = sc.nextInt();

//打印结果
System.out.println("你输入了:" + num2);

}//End method main

}//End class ExcptionTest

   接下来就是测试阶段了,首先,我分两次输入,当然是没有问题的;第二次,输入了12 12(注意,中间有空格哦),这次的结果是:

请输入一个数字:
12 12
输入的数字是:12
请输入另一个数字:
你输入了:12
[/color]

    也就是,只要输入一次的数据就行;接着,第三组测试开始:12@12:

请输入一个数字:
12@12
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at com.attt.ExceptionStudy20110417.ExceptionTest.main(ExceptionTest.java:24)

    对了,毫无意外的出错了!最后一个测试是:12 @12(这个结果比较非主流!):
请输入一个数字:
12 @12
输入的数字是:12
请输入另一个数字:

Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at com.attt.ExceptionStudy20110417.ExceptionTest.main(ExceptionTest.java:31)

   然后就此剧终了!
    是的,很简单就是不匹配而已,而已!我分别讲一下我在不同测试时所思考的吧:第一个就无需赘述了;第二种情况,根据我在C中学到的一点知识看来,应该是客户端输入12 12时,数据就都存储到了缓存中,然后在第一次取的时候,直接拿出12,当到达第二个nextInt()时,由于还有未处理的数据,因此便直接拿出来了;第三个测试由于没有间隔符(原因不明),把这一串输入当成一个,因此出错!第四个和第二个类似,只是在拿出数据时,发现不是Int型的,于是报错!
    由于,学识实在太有限,并不是十分清楚到底发生了神马,只有把它晒出来,希望南来北往客能够指点指点!!!
1
0
分享到:
评论
1 楼 saboo 2011-04-17  
好久没用过Scanner啦,看到了才想起来了! 

相关推荐

    只能输入数字文本框C#程序

    在C#编程中,"只能输入数字文本框"是一个常见的需求,特别是在开发用户界面时,例如在财务软件、统计应用或者任何需要用户输入数值数据的场景。为了实现这个功能,我们需要编写特定的代码来限制用户在文本框...

    VC浮点数编辑框类,实现浮点数输入并屏蔽非法字符

    4. **错误恢复**:如果用户在合法输入之后输入了非法字符,可以通过回退操作撤销非法输入,保持编辑框内的内容始终为有效的浮点数。 `NUM_EDIT.cpp`和`NUM_EDIT.h`两个文件是这个自定义类的实现和声明。`.cpp`文件...

    jquery只能输入数字的文本框插件

    如果不是,它可能阻止输入或者删除非数字字符。 3. **回退处理**:如果用户尝试粘贴包含非数字内容的文本,插件可能需要清除整个输入或只保留数字部分。 4. **自定义设置**:为了增加灵活性,插件可能允许开发者配置...

    android模仿支付密码输入效果

    在Android开发中,创建一个模仿购物类App的支付密码输入界面是常见的需求,这涉及到用户交互体验和安全性的重要环节。本文将深入探讨如何在Android中实现这样的功能。 首先,我们需要理解支付密码通常由六位数字...

    Qt 控件 实现 QComboBox输入自动提示功能(仿Google搜索提示)

    在实际项目中,你可能还需要处理一些额外的情况,比如输入为空时是否显示全部选项、如何处理用户回退删除导致的提示等。这些都可以通过增加逻辑判断并在槽函数中处理来实现。记得在编写代码时注意异常处理,确保程序...

    只能输入数字的文本框控件(附源程序)

    这样的控件在各种应用中非常常见,例如财务软件、数据录入系统或者任何需要精确数值输入的界面。 首先,我们需要理解VB.NET中的TextBox控件。TextBox是.NET Framework提供的一种基本UI元素,允许用户输入和显示文本...

    imaskjs是一个vanillajavascript输入掩码

    例如,一个电话号码掩码可能是`(999) 999-9999`,这样用户在填写时就会自动遵循这个模式,减少了输入错误的可能性。imaskjs支持自定义掩码规则,可以适应各种不同的数据格式需求。 ### 3. 使用imaskjs的基本步骤 1...

    邮箱收到系统退信原因

    1. 收件人信箱填写不准确:这是最常见的退信原因,可能是由于收件人的邮箱地址输入错误,或者是收件人提供的地址不再有效。解决方法是核对并确认收件人的邮箱地址是否正确,如有必要,可通过其他方式与收件人取得...

    仿微信/支付宝的自定义提现密码输入

    在实现过程中,还需考虑一些用户体验的细节,比如输入验证(如密码长度、是否包含特殊字符等)、错误提示、输入限制(如防止连续快速输入)以及输入状态的保存(如在输入过程中按回退键)。此外,为了增强安全性,还...

    java 输入输出流

    在Java中,输入输出流(IO流)是处理数据输入和输出的核心机制。Java IO库提供了一系列类和接口,用于读写文件、网络通信、标准输入输出等。本篇文章将详细介绍Java中常见的输入输出流及其相关概念。 首先,我们来...

    简单宾馆退房系统

    在这个系统中,所有的数据都是静态的,即数据在程序运行时写死,不进行持久化存储。这意味着每当用户刷新页面或重启程序时,原本处理过的退房信息将会丢失,因为这些信息并未被保存到可以持久保留数据的地方,如硬盘...

    易语言模仿打字效果(文字一个一个输入到编辑框)

    这个效果常见于软件启动时的欢迎语、游戏剧情展示或者程序加载过程中,使得信息的呈现更加生动有趣。本文将深入探讨如何使用易语言来实现这样一个功能,即文字一个一个地输入到编辑框。 易语言是一款由中国程序员...

    Android Studio 3.0及中文输入法不显示的问题解决

    5. **安装旧版本Android Studio**:如果问题依然存在,且你对中文输入法有高度依赖,你可能需要回退到一个较早的稳定版本,如2.3.x系列,直到这个问题在后续版本中得到修复。 6. **反馈给官方**:如果以上所有方法...

    音视频采集完整的代码,包括采集设备,选择输入端子,及时抓图

    此外,还有可能提供播放控制功能,如暂停、快进、快退。 6. **错误处理**:良好的错误处理机制是任何复杂系统的关键。这部分代码会处理可能出现的错误,如设备不可用、权限问题、内存不足等。 7. **API调用**:...

    仿支付宝输入密码

    - 为了提高用户体验,可以添加诸如自动聚焦下一个输入框、输入错误后自动回退等特性。此外,考虑到不同设备和屏幕尺寸,界面需要具备良好的适配性。 10. **测试与调试**: - 开发完成后,需要进行全面的测试,...

    EdText去除回车,固定输入长度

    在IT行业中,文本编辑器是开发者和用户日常工作中不可或缺的工具。`EdText`看起来是一个特定的文本编辑器或者相关软件组件,它具有特定的功能,即去除回车并能确保输入的文字长度固定。这个功能在某些场景下非常有用...

    vue实现输入一位数字转汉字功能

    这一功能在某些特定场景下,如针对儿童的教育应用或者对数字不敏感的用户,可能会提供更好的用户体验。以下是对实现这个功能的代码进行详细解释: 首先,我们需要引入Vue.js库和Bootstrap CSS样式库,这可以通过CDN...

    Android高级应用源码-前面部分可以编辑后面部分不可编辑的EditText.rar

    这个特性在某些特定的应用场景下非常有用,比如在输入信用卡号时,用户可能需要输入前半部分数字,而验证信息如CVV码则自动显示且不可修改。 首先,我们需要理解EditText的工作原理。EditText继承自TextView,它...

    苹果iPhone隐藏功能大揭秘.pdf

    在iPhone4中使用联想功能输入文字,点击空格就会自动选择联想备选项中的第一项,此时并不需要手动选择,只要继续输入,iPhone就会自动选择要输入的内容。 隐藏功能12:ipod 睡眠模式 晚上听歌的时候您是否怕睡着了...

    3X一定回退包

    【标签】"s x f" 可能是由于输入限制或者误操作,导致标签显示不完整。通常,标签是用来标识内容主题的关键字,这里可能是想表示 "华为"(Huawei)、"荣耀3X"(Honor 3X)或者与系统固件(Firmware)相关的字样。...

Global site tag (gtag.js) - Google Analytics