计算机与程序设计-java300典例_第1页
计算机与程序设计-java300典例_第2页
计算机与程序设计-java300典例_第3页
计算机与程序设计-java300典例_第4页
计算机与程序设计-java300典例_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

300多个日常开发中广泛使用的实例。希望各位读者能在本书的引本书特为了方便读者阅读,每个例子分为了实例描述、实现过程、代码解析和知识扩展4序的代码;代码解析对例子中的知识进行说明;知识扩展则告诉了读者一些Java实例JavaJava语言的高级开发技术及应用,内容梯本书的内容就是丰富多彩而且简单实用的本书内容及体系结 Java开发环境的配置和Eclipse开发工具的应用过程,并可以掌握Java Java语言的一些高级开发技术。JavaJava300前言前言 以掌握Java语言在图形界面和数据库方面的技术及应用。本书读者对从未接触过Java了解一些Java知识,希望进一步学习的者致本书主要由(营口理工学院)编写,编写中难免有所疏漏和不妥之处,尽请不吝目录第1 Java语言基础

第一篇基础实例001输出 难度指数★☆☆☆☆☆占用时间○○ 难度指数★☆☆☆☆☆占用时间○○实例003可爱的符号表 难度指数★☆☆☆☆☆占用时间○○ 难度指数★★☆☆ 占用时间○ 难度指数★★☆☆ 占用时间○ 难度指数占用时间○○ 难度指数占用时间○○ 难度指数占用时间○○ 难度指数占用时间○○实例010实现输入字符的加密和难度指数★★★★☆☆占用○○第2 Java流程控制 难度指数★★☆☆ 占用时间○实例012验证用户登录信 难度指数占用时间○○实例 难度指数占用时间○○ 难度指数占用时间○○ 难度指数占用时间○○ 难度指数★★★★☆☆占用○○ 难度指数★★★★☆☆占用○○ 难度指数占用时间○○019计算1+1/2!+1/3!+…+1/10!的值难度指数占用时间○○实例020实现输出三 难度指数★★★★☆☆占用○○实例021空心菱形如何表 难度指数★★★★☆☆占用○○实例022打印九九乘法 难度指数★★★★☆☆占用○○实例023猴子分桃问 难度指数★★★★☆☆占用○○第3章数 难度指数★★☆☆ 占用时间○实例025实现矩阵的转 难度指数★★★☆☆☆占用时间○ 难度指数占用时间○○实例 1、2、3、4能组成多少个互不相同的三位数?难度指数占用时间○○ 难度指数占用时间○○实例029使用最简单的for循环对数组进行排 难度指数占用时间○○ 难度指数占用时间○○ 难度指数占用时间○○ 难度指数★★★★☆☆占用○○ 难度指数占用时间○○034使用sort()方法对数组进行排序难度指数★★☆☆ 占用时间○实例035猴子选大 难度指数占用时间○○实例036九宫格问 难度指数占用时间○○ 难度指数★★★★☆☆占用时间○○实例038幸运观众是如何产生的 难度指数★★★★☆☆占用时间○○ 难度指数★★★★☆☆占用○○ 难度指数★★★★☆☆占用○○实例041反转输出数组元 难度指数★★★★★☆占用时间○○第4章字符 实例042输入的用户名找回用户难度指数★★☆☆ 占用时间○ 难度指数占用时间○○ 难度指数★★★☆☆☆占用时间○○实例045实现不同字符串的连接 难度指数★★★☆☆☆占用时间○○实例046字符串大小写转 难度指数★★☆☆ 占用时间○ 难度指数占用时间○○实例048当前日期的格式 难度指数占用时间○○ 难度指数★★★★☆☆占用○○实例050判断网页请求和FTP请 难度指数★★★★☆☆占用○○实例051验证IP地址的有效 难度指数★★★★★☆占用时间○○实例052鉴别的难度指数★★★★★☆占用时间○○实例 难度指数★★★★☆☆占用○○ 难度指数★★★★☆☆占用时间○○实例055批量替换特定的字符串 难度指数★★★★☆☆占用时间○○ 难度指数★★★★☆☆占用○○ 难度指数★★★★☆☆占用○○实例058字符串的编码转 难度指数★★★★★☆占用时间○○ 难度指数★★★★★★占用时间 实例060自定义学生 难度指数★★☆☆ 占用时间○ 难度指数★★☆☆ 占用时间○实例062查看类的难度指数★★☆☆ 占用时间○示例063查看类的成 难度指数★★☆☆ 占用时间○实例064查看内部类信 难度指数占用时间○○实例065同名方法的使 难度指数★★★★☆☆占用○○ 难度指数占用时间○○ 难度指数★★☆☆ 占用时间○ 难度指数占用时间○○实例069统计商品销售 难度指数占用时间○○实例070汉诺塔问题的解 难度指数占用时间○○实例071和员工的差 难度指数占用时间○○ 难度指数★★★★☆☆占用时间○○实例073计算几何图形的面积 难度指数★★★★☆☆占用时间○○ 难度指数★★★★★☆占用时间○○实例075使用字符串输出对象 难度指数★★★★★☆占用时间○○ 难度指数★★★★★★占用时间 难度指数★★★★★★占用时间难度指数★★★★★★占用时间○○实例079创建长度可变的数组 难度指数★★★★★★占用时间○○ 难度指数★★★★★★占用时间第二篇应用

第6 Java集合 难度指数★★☆☆ 占用时间○082实现List集合中数组的自动排序难度指数★★☆☆ 占用时间○ 难度指数占用时间○○084使用For循环遍历ArrayList难度指数占用时间○○085使用Iterator遍历ArrayList难度指数★★★★☆☆占用○○实例086使用ListIterator逆序遍历 难度指数★★★★☆☆占用○○实例087简单的电子词 难度指数★★★★☆☆占用○○088猴子选大王2难度指数★★★★☆☆占用○○实例089使用HashSet实现学生信息管 难度指数★★★★★☆占用时间○○090使用TreeSet难度指数★★★★★☆占用时间○○难度指数★★★★★☆占用时间○○

实例092使用HashMap实现常用的查找功 难度指数★★★★★☆占用时间○○093使用TreeMap难度指数★★★★★☆占用时间○○实例094使用Vector类管理书目信息难度指数★★★★☆☆占用○○095使用Stack栈实现字符串的逆序输出难度指数★★★☆☆☆占用时间○○实例096读写Properties文件 难度指数★★★☆☆☆占用时间○○第7章多线 实例097线程的启动与结

难度指数★★☆☆☆☆ 占用时间○○实例098查看线程的运行状态 难度指数★★★☆☆☆占用时间○○099设置线程优先级分配CPU难度指数占用时间○○

难度指数★★★★☆☆占用○○

实例101CSDN资源搜索 难度指数占用时间○○102非诚勿扰,爱情对对碰(线程join()等待方法)难度指数占用时间○○ 难度指数★★☆☆ 占用时间○实例 难度指数★★★★☆☆占用○○ 难度指数★★☆☆ 占用时间○难度指数占用时间○○ 难度指数★★☆☆ 占用时间○

难度指数★★★★★☆占用时间○○第8 Java异常处理

109算数异常难度指数★★☆☆ 占用时间○ 难度指数占用时间○○ 难度指数占用时间○○ 难度指数占用时间○○实例113空指针异常 难度指数占用时间○○ 难度指数占用时间○○ 难度指数占用时间○○116操作错误异常难度指数占用时间○○难度指数占用时间○○118try-catch捕获异常难度指数★★★★☆☆占用○○实例119try-catch-finally捕获异 难度指数★★★★☆☆占用○○

实例120嵌套try-catch-finally捕获异 难度指数★★★★☆☆占用○○实例121异常 难度指数★★★★☆☆占用○○122未发现文件异常难度指数★★★★☆☆占用○○实例123throws抛出异 难度指数★★★★☆☆占用○○实例124throw抛出异 难度指数★★★★☆☆占用○○实例125自定义异 难度指数★★★★☆☆占用○○126数据库操作异常难度指数★★★★☆☆占用○○实例127同时捕获多个异 难度指数★★★★★☆占用时间○○

第9

128求圆周率π

难度指数占用时间○○实例129四舍五入运算 难度指数★★☆☆ 占用时间○实例130高精度整数的运 难度指数★★★★☆☆占用○○实例131高精度浮点运 难度指数★★★★☆☆占用○○ 难度指数占用时间○○难度指数占用时间○○ 难度指数★★☆☆ 占用时间○实例135随机生成不同格式的难度指数★★☆☆ 占用时间○136使用Date类获取当前系统时间难度指数★★★★☆☆占用○○

137使用SimpleDateFormat类格式化输出时间难度指数★★★★★☆占用时间○○138使用Calendar显示当前的时间和日期难度指数★★★★★☆占用时间○○139使用GregorianCalendar难度指数★★★★★☆占用时间○○ 难度指数★★★★★☆占用时间○○实例 难度指数★★★★★☆占用时间○○

难度指数★★★★★☆占用时间○○实例143记录程序执行的时间 难度指数★★★☆☆☆占用时间○○难度指数占用时间○○实例145简单的计时 难度指数★★★★☆☆占用○○实例146Java内存管 难度指数★★☆☆ 占用时间○

难度指数★★★★★★占用时间 难度指数★★★★★★占用时间实例149E-mail格式验证与自动修难度指数★★★★★★占用时间10章枚举和泛型实例150查看枚举类型定 难度指数★★☆☆ 占用时间○

难度指数★★☆☆ 占用时间○ 难度指数★★☆☆ 占用时间○ 难度指数占用时间○○ 难度指数占用时间○○ 难度指数占用时间○○难度指数占用时间○○ 难度指数★★★★☆☆占用○○ 难度指数★★★★☆☆占用○○

难度指数★★★★★☆占用时间○○实例160泛型类的继承应 难度指数★★★★★☆占用时间○○实例161泛型的强制类型转换 难度指数★★★★☆☆占用时间○○实例162泛型的集合类应 难度指数占用时间○○第11 Java的输入输出及文件操作实例163创建文件 难度指数★★★★☆☆占用○○ 难度指数★★★☆☆☆占用时间○○实例165显示 难度指数★★★★☆☆占用时间○○难度指数★★★★☆☆占用○○ 难度指数★★★★☆☆占用○○ 难度指数★★★★★☆占用时间○○实例169以行为单位文件内 难度指数★★★★☆☆占用○○ 难度指数★★★★☆☆占用○○ 难度指数★★★★★☆占用时间○○实例172以行为单位写文 难度指数★★★★☆☆占用○○实例173按顺序创建文 难度指数★★★★☆☆占用○○实例174按顺序文 难度指数★★★★☆☆占用○○实例175移动指 难度指数★★★★★★占用时间

难度指数★★★★★★占用时间实例177指 难度指数★★★★★★占用时间难度指数★★★★★★占用时间

难度指数★★☆☆ 占用时间○ 难度指数★★★★★★占用时间 难度指数★★★★★★占用时间 难度指数★★★★☆☆占用○○183使用I/O流生成Word难度指数★★★★★☆占用时间○○实例184使用I/O流Word文难度指数★★★★★☆占用时间○○185使用I/O流生成Excel难度指数★★★★★★占用时间实例186使用I/O流Excel文难度指数★★★★★★占用时间187使用I/O流生成PDF

难度指数★★★★★★占用时间实例188使用I/O流PDF文难度指数★★★★★★占用时间189生成ZIP压缩文件难度指数★★★★★☆占用时间○○实例190解压缩zip文 难度指数★★★★★☆占用时间○○实例191JAR包文件难度指数★★★★★☆占用时间○○实例192文件的加密/操 难度指数★★★★☆占用时间

第三篇开发第12 难度指数★★☆☆ 占用时间○实例194设置窗体的大 难度指数★★☆☆☆☆ 占用时间○○实例195动态的窗体大小调整 难度指数★★☆☆☆☆ 占用时间○○实例196创建 难度指数★★☆☆ 占用时间○实例197设置窗体难度指数占用时间○○ 难度指数占用时间○○实例199文本框和框的创 难度指数占用时间○○实例200多行文本框的创 难度指数占用时间○○实例201创建单选按 难度指数占用时间○○实例202复选框的使 难度指数占用时间○○实例203列表框使用实 难度指数占用时间○○实例204组合框应用实 难度指数占用时间○○实例205滚动条应用实 难度指数★★★★☆☆占用○○实例206进度条应用实 难度指数★★★★☆☆占用○○实例207表格的使 难度指数★★★★★☆占用时间○○实例208树形结构的创 难度指数★★★★★☆占用时间○○实例209创建菜 难度指数★★★★★☆占用时间○○实例210创建弹出式菜 难度指数★★★★★☆占用时间○○实例211的使用难度指数★★★★★☆占用时间○○实例 难度指数★★★★☆☆占用○○实例213边框布局BorderLayout布局设 难度指数★★★★☆☆占用○○实例214网格布局GridLayout版面设 难度指数★★★★☆☆占用○○ 难度指数★★★★☆☆占用○○实例216应用网格包布局GridBagLayout设计版 难度指数★★★★☆☆占用○○实例217用户框JOptionPane的使 难度指数★★★★☆☆占用○○实例218文件选择框JFileChooser的使 难度指数★★★★☆☆占用○○实例219颜色选择框JColorChooser的使用难度指数★★★★☆☆占用○○实例220使用ActionEvent组 难度指数★★★★★☆占用时间○○实例221使用MouseListener鼠标事件难度指数★★★★★☆占用时间○○实例222使用MouseMotionListener鼠标移动难度指数★★★★★☆占用时间○○实例223使用KeyListener键 难度指数★★★★★☆占用时间○○实例224使用WindowListener窗口事 难度指数★★★★ 占用时间○第13 实例225设置闪烁的标题 难度指数占用时间○○实例226实现带背景的窗 难度指数★★☆☆ 占用时间○难度指数占用时间○○实例228建立钻石型窗 难度指数★★★★☆☆占用时间○○实例229打开指定类型的文件 难度指数★★★☆☆☆占用时间○○实例230效果的提示信

难度指数★★★☆☆☆占用时间○○实例231建立简单的时钟布局 难度指数★★★☆☆☆占用时间○○实例232文本区设置背景难度指数★★★☆☆☆占用时间○○实例233简单的字符统计工具 难度指数★★★☆☆☆占用时间○○难度指数占用时间○○实例235快捷的日期显示 难度指数★★★☆☆☆占用时间○○实例236包含的弹出菜单 难度指数★★★☆☆☆占用时间○○

难度指数★★★☆☆☆占用时间○○实例238设置表格的列的高度 难度指数★★★★★☆占用时间○○难度指数★★★★★☆占用时间○○实例240快速查找表格记 难度指数★★★★★☆占用时间○○实例241提示信息的应 难度指数★★★★☆☆占用○○第14 JavaApplet小应用程序实例242不断近的文 难度指数占用时间○○实例243舞动的彩 难度指数★★☆☆ 占用时间○实例244文字的3D效 难度指数★★☆☆ 占用时间○实例245绚烂的字体闪 难度指数★★☆☆ 占用时间○实例246闪亮登场的文 难度指数占用时间○○实例247简易放大 难度指数占用时间○○实例248带波纹的水面倒 难度指数占用时间○○实例249夜空中璀璨的烟 难度指数占用时间○○实例250百叶窗翻页效 难度指数占用时间○○

实例251QQ空间欢迎界面难度指数★★★★☆☆占用○○实例252雷电中的纽约 难度指数★★★★☆☆占用○○实例253动态边框难度指数★★★★☆☆占用○○实例254我的风景相册 难度指数★★★★☆☆占用○○实例255遥远的星 难度指数★★★★★☆占用时间○○ 256获取自己的计算机名与IP地址难度指数占用时间○○实例257获得特定的IP地 难度指数★★★☆☆☆占用时间○○实例258使用URL网页 难度指数★★★★☆☆占用时间○○259根据URL难度指数★★★★☆☆占用○○260根据URL难度指数★★★★☆☆占用○○261根据URL难度指数★★★★☆☆占用○○实例262浏览 难度指数★★★★☆☆占用○○实例263实现网络文件的457难度指数★★★☆☆☆占用时间○○ 难度指数★★★★☆☆占用○○ 难度指数★★★★☆☆占用时间○○实例266实现网络的传输 难度指数★★★★☆☆占用时间○○ 难度指数★★★☆☆☆占用时间○○实例268实现网络的传输 难度指数★★★★☆☆占用时间○○

269模仿QQ难度指数★★★★★☆占用时间○○第16

实例270加 难度指数占用时间○○实例271密钥的创 难度指数★★☆☆ 占用时间○实例272对称加 难度指数★★★★☆☆占用○○实例273非对称加 难度指数★★★★☆☆占用○○实例 难度指数★★★★☆☆占用○○实例 CBC方式的难度指数★★★★☆☆占用○○实例276数字签 难度指数占用时间○○实例277使用消息保存口 难度指数★★★★☆☆占用○○实例278使用消息验证口 难度指数★★★★☆☆占用○○实例279简单的加密口 难度指数占用时间○○实例280输入流的加密算 难度指数★★★★☆☆占用○○实例281输入流的算 难度指数★★★★☆☆占用○○实例282输出流的加密算 难度指数★★★★☆☆占用○○实例283输出流的算 难度指数★★★★☆☆占用○○284使用RSA难度指数★★★★★☆占用时间○○285使用RSA算法进行难度指数★★★★★☆占用时间○○286难度指数★★★★★☆占用时间○○

第17章 实例287常用图形的绘制

难度指数占用时间○○实例288不规则图形的绘 难度指数占用时间○○实例289的旋 难度指数★★★★☆☆占用○○实例290缩 难度指数★★★★☆☆占用○○实例291图像的模糊与锐 难度指数占用时间○○实例292光照特效实 难度指数★★★★☆☆占用○○实例293创建动画难度指数占用时间○○实例294的合 难度指数占用时间○○实例295音频程 难度指数占用时间○○实例296利用JavaSoundAPI音 难度指数占用时间○○实例 JavaJava300前言前言难度指数★★★★☆☆占用○○第18 Java数据库操作298JDBC连接MySQL难度指数★★☆☆ 占用时间○ 难度指数占用时间○○难度指数占用时间○○

难度指数占用时间○○难度指数占用时间○○ 难度指数占用时间○○实例 难度指数占用时间○○实例 难度指数占用时间○○

难度指数★★★★★☆占用时间○○实例307修改数据库表内信息 难度指数★★★★☆☆占用时间○○

实例308将数据表中的信 难度指数★★★★★☆占用时间○○实例309保存用户登录信 难度指数★★★★★☆占用时间○○实例310将文件存入数据 难度指数★★★★★★占用时间实例311将数据库中的输 难度指数★★★★★★占用时间实例312生成有规律的编 难度指数★★★★★☆占用时间○○实例313生成无规律编 难度指数★★★★★☆占用时间○○第19 Java小游戏合集及应用工具示例实例314欢乐 难度指数★★★★☆☆占用○○实例315打豆豆游 难度指数占用时间○○实例316动感魔方游 难度指数★★★★☆☆占用○○实例317俄罗斯方块游 难度指数★★★★★★占用时间实例318贪吃蛇游 难度指数★★★★★☆占用时间○○实例319拼图游

前言前言JavaJava300难度指数★★★★☆☆占用○○实例320寻找宝藏游 难度指数★★★★★★占用时间实例321开窗游 难度指数★★★★☆☆占用○○实例322猜价格游 难度指数★★★★★☆占用时间○○实例323中国象棋游 难度指数★★★★★★占用时间实例324Java信息解 难度指数★★★★★☆占用时间○○实例325Java万年 难度指数★★★★★☆占用时间○○第4章字符字符串比较StringBuilder类批量操445字符串比较StringBuilder类批量操44562232知识难度指占用时字符串比较22字符串格式化32字符串连接33字符串大小写转22字符串的startsWith()33正则表达53实例 输入的用户名找回用户【实例描述在登录一些时,我们需要输入用户名和。也许时间久了你就会忘记所设的,这时我们可以请求该将发到时的邮箱。这就需要判断用户输入的用户名是否正4.1所示。图4.1【实现过程Eclipse中新建项目Username,并在其中创建一个Username.java文件。在该类的主方protectedvoiddo_button_actionPerformed(ActionEvente)Stringname=usernameField.getText();if(name.equals("admin")){

//获取用户输//判断是否管理员账框

showMessageDialog(null,"对不起,这个用户名是管理员的,不是你的}elseif(name.equals("Lester")) //判断是否用showMessageDialog(null,"该用户名对应的已经发送到时的邮箱,请查else //给错误用户名的提示showMessageDialog(null,"你输入的用户名不存在,留意CapsLock键是否按下}}【代码解析String类的equals()方法来判断两个字符串的内容是否相同,这个方法是从Object类中继承的。在Java语言中,默认的所有类都是Object的子类,也就是说只要是对象,Objectequals()方法,String类就重写了这个方法实现判断字符串内容是否相同的目的。其语法如下:publicbooleanequals(Object【知识扩展Stringstr1=”abc”;StringStringstr3=newString(”abc”);str1==str2truestr1==str3将返回falseJava中基本数用new关键字创建的字符串会开辟内存控件,所以str1==str3不成立。实例043 将数字货币金额转换为大写格【实例描述123456元,则4.2所示。图4.2将数字货币金额转换为大写格【实现过程Eclipse中新建项目MoneyConvert,并在其中创建一个MoneyConvert.java文件。convert()方法把这个金额转换成大写金额的字符串格式,并输出到控制台。代码如下所示:publicstaticvoidmain(String[]args)ScannerscannewScanner(System.in);

////获取金额转换后的字符Stringconvert=convert(scan.nextDouble());}

//输出转换结convert(),该方法在主方法中被调用,用于金额数字向大写格式的DecimalFormat类的实例对象,通过这个格式器对象把金额数字格式化,只保留三位小数。然后分别调用getInteger()getDecimal()方法转换整数与小数部分,并返回publicstaticStringconvert(doubled)//实例化DecimalFormat对DecimalFormatdf=new//格式化double数StringstrNum=if(strNum.indexOf(".")!=-1)

//判断是否包含小数Stringnum=strNum.substring(0,//整数部分大于12不能转if(num.length()>12)return"";}}Stringpoint //ifstrNum.indexOf("1point="元";}elsepoint元整}//转换结Stringresult=getInteger(strNum)+point+if(result.startsWith("元")){ result=result.substring(1,result.length()); }return //返回新的字符}publicstaticStringgetInteger(Stringnum)if(num.indexOf(".")!=-1){ num=num.substring(0,num.indexOf("."));前言前言JavaJava300}num=newStringBuffer(num).reverse().toString(); StringBuffertemp=newStringBuffer(); 对for(inti=0;i<num.length();i++){temp.append(STR_NUMBER[num.charAt(i)-48]);

//加入单}num=temp.reverse().toString();numnumReplace(num,零拾零numnumReplace(num,零佰零numnumReplace(num,零仟零numnumReplace(num,零万万numnumReplace(num,零亿亿numnumReplace(num,零零零numnumReplace(num,亿万亿

////替换字符串的//替换字符串的//替换字符串的//替换字符串的//替换字符串的//替换字符串的//替换字符串的//如果字符串以零结尾将其ifnum.lastIndexOf("零num.length()1)num=num.substring(0,num.length()-1);}return}publicstaticStringgetDecimal(Stringnum)if(num.indexOf(".")==-1){return"";

//判断是否包含小数}num=num.substring(num.indexOf(".")+

//num=new//创建一个StringBuffer对StringBuffertemp=newfor(inti=0;i<num.length();i++){

//加入单temp.append(STR_NUMBER[num.charAt(i)-}num=temp.reverse().toString();numnumReplace(num,零角零num=numReplace(num,"","零numnumReplace(num,零厘零numnumReplace(num,零零零

//替换字符串的//替换字符串的//替换字符串的//替换字符串的//替换字符串的//如果字符串以零结尾将其ifnum.lastIndexOf("零num.length()1)num=num.substring(0,num.length()-1);}return}publicstaticStringnumReplace(Stringnum,StringoldStr,String{while(true)//判断字符串中是否包含指定字if(num.indexOf(oldStr)==-1){}//

JavaJava300前言前言num=num.replaceAll(oldStr,}//返回替换后的字符return}【代码解析【知识扩展format()方法可以使用指定模板来格式化任意浮点数字。实例044 将数字格式化为货币字符【实例描述4.3所示。图4.3将数字格式化为货币字符【实现过程Eclipse中新建项目CurrencyFormatCurrencyFormat.java文件。在NumberFormat类的format()方法把接收的数字格式转换为货币字符串。代码如下所示:importjava.text.NumberFormat;importjava.util.Locale;importjava.util.Scanner;publicclassCurrencyFormat{publicstaticvoidmain(String[]args)ScannerscannewScanner(System.in创建标注输入流扫描器doublenumber //获取用户输入System.out.println("该数字用Locale类的以下常量作为格式化对象的构造参数,将获得不同的货币格式:");JavaJava300前言前言NumberFormatformatNumberFormat.getCurrencyInstance(Locale.CHINA);//输出格式化货币格System.out.println("Locale.CHINA:"+format.format(number));format=NumberFormat.getCurrencyInstance(Locale.US);System.out.println("Locale.US:"+format.format(number));format=NumberFormat.getCurrencyInstance(Locale.ENGLISH);System.out.println("Locale.ENGLISH:"+format.format(number));}}【代码解析NumberFormat类实现了数字格式化,这个类是NumberFormatformat=【知识扩展JavaLocal类的对象来表示,在该类中包含了三实例045 实现不同字符串的连【实例描述图4.4实现不同字符串的连【实现过程EclipseStringConnectionStringConnection.java文件。在publicclassStringConnectionpublicstaticvoidmain(String[]argv){Strings1="o"+","+"World";StringBuffersb2=newStringBuffer(); sb2.append('');Strings2=

//使//将StringBuffer值转换为字符串,并输System.out.println("使用append()方法输StringBuffersb3=newStringBuffer().append(" append(',').append('').append("World");System.out.println("append()方法的另一}}【代码解析4.5所示。01234字符HELLOappend()方01234567处理结HELLOSTR图4.5append()方能示【知识扩展insert()StringBuffer对象中插入内容,然后形成新的字符串。它和append()insert()方法可以在任意特定的位置进行任意数据类型的值的插入。其功能示例4.6所示。字符

HHELLOinsert()方0123 6处理结 Eme O图4.6insert()方能示实例 字符串大小写转【实例描述么在代码中应当使用法排除字母大小写的因素,然后再对比数据库中的用户名和用户输4.7所示。前言前言JavaJava300【实现过程Eclipse中新建项目ConvertMinMax,并在其中创建一个ConvertMinMax.java文件。在toUpperCase()和toLowerCase()方法,对其进行大小写转换。代码如下所示:图

protectedvoiddo_button_actionPerformed(ActionEventarg0)//获取大小写单选项的选Stringcommand= booleanupper=command.equals("大写");StringtextinputTextField.getText();if(upper){

//判断是否选择的大写单选//获取输入字符//大写转else //小写转}}【代码解析() 字符

HHELlo!toLowerCase()方0h1e23l4l5 字符0H1E23L4l5 toUpperCase()方HELLO! HELLO!图4.8toLowerCase()方法与toUpperCase()方能示前言前言JavaJava300【知识扩展实例047 计算字符串中子串出现的次【实例描述4.9所示。图4.9【实现过程Eclipse中新建项目appearTimesappearTimes.java文件。在该类的importjava.util.Scanner;publicclassappearTimes{publicstaticvoidmain(String[]args){Scannerscan=newScanner(System.in);System.out.println("请输入你要进试的字符串Stringstr=Scannerscan1=newScanner(System.in);Stringstr1=scan1.nextLine();intcount=0;intstart=while(str.indexOf(str1,start)>=0&&start<str.length()){start=str.indexOf(str1,start)+}System.out.println(str1在str出现的次数为}}【代码解析while(str.indexOf(str1,start)>=0&&start<str.length()){start=str.indexOf(str1,start)+}实例 当前日期的格式【实例描述String类的日期格式参数值,组合这些值实现特殊格式的4.10所示。图4.10当前日期的格式【实现过程Eclipse中新建项目DateStringDateString.java文件。在该类的主方对象。代码如下所示:publicclassDateStringpublicstaticvoidmain(String[]args){Datetoday=newDate();Stringa=String.format(Locale.US,"%tb",today);System.out.println("格式化后的字符串为月份的英文缩写:"+a);Stringb=String.format(Locale.US,"%tB",today);System.out.println("格式化后的字符串为月份的英文缩写:"+b);Stringc=String.format("%ta",today);System.out.println("月格式化后的字符串为星期:"+Stringd=String.format("%tA",today);System.out.println("格式化后的字符串为星期:"+Stringe=String.format("%tY",today);System.out.println("格式化后的字符串为4位的年份值:"+e);Stringf=String.format("%ty",today);System.out.println("格式化后的字符串为2位的年份值:"+f);Stringg=String.format("%tm",today);System.out.println("格式化后的字符串为2位的月份值:"+g);//格式化后的字符串为2Stringh=String.format("%td",today);System.out.println("格式化后的字符串为2位的日期值:"+h);}}【代码解析String类的format()方法不但可以完成日期的格式化,也可以实现时间的格式化。时间【知识扩展实例049 判断字符串是否为数【实例描述只能是字符串类型,如果输入了的信息,如在货币值中输入了字母“a”以及其他非数字NumberUtils类中的方法处理此问题,让程序更加快捷4.11所示。图4.11判断字符串是否为数【实现过程EclipseCheckNumberCheckNumber.java文件。在该类protectedvoiddo_button_actionPerformed(ActionEvente)Stringtext=booleanisnum=NumberUtils.isNumber(text);if(isnum){

//获取用户输入的金额字符//判断是不是数//输出正确提示showMessageDialog(null,"输入正确,是数字格式else //输出showMessageDialog(null,"输入错误,请确认格式再输入}}【代码解析本实例采用了Apache提供的lang包中的NumberUtils类来实现数字判断,该类的全路径 mom.lang.math.NumberUtils”,这个类中的isNumber()方法可以接收字符串publicstaticbooleanisNumber(String【知识扩展Double类的parseDouble()double类型。如果抛出实例050 判断网页请求和FTP请【实例描述大家在Internet网络时,经常涉及很多协议,其中最明显、最常用的就是网页的HTTP协议和FTP服务器的FTP协议等。本实例将实现对用户输入信息进行判断,4.12所示。 【实现过程EclipseHTTPFTPHTTPFTP.java文件。在该类的主方法中创建标准输入流的扫描器对象,接收用户输入的信息。程序通过调用startsWith()方法判断用户输入的是网页地址还是FTP地址。代码如下所示:protectedvoiddo_button_actionPerformed(ActionEvente)Stringrequest=requestField.getText();if(request.startsWith("http")){

//获取用户输//判断输入是否以http开showMessageDialog(null,"您输入的是网页地址,希望浏览某个。}elseif(request.startsWith("ftp")){ showMessageDialog(null,"您输入的是FTP地址,希望FTP服务器。");else //其他字符串开头认为信息不完showMessageDialog(null,"您输入的请求信息不完整。}}【代码解析StringstartsWith()endsWith()方法,可以判断某字符串是否以指定字符4.13所示。hello!√h√e hello!√h√ehello!×l×o hello!×l×o图4.13startsWith()方法和endsWith()方能示Java300Java300【知识扩展前言前言System.out.println(“Ilove+”System.out.println(“I实例051 验证IP地址的有效【实例描述IP地址是网络上每台计算机的标识,在浏览器中输入的也是要经过DNS服务器转换IP地址才能找到服务器的,在很多网络程序中要求输入服务器IP地址或者对方连接的IP地址,IP地址的错误输入将使程序无法运行。本实例将实现对IP地址的验证功能,实例的运行4.14所示。 【实现过程EclipseCheckIPCheckIP.java文件。在该类的主方法中创建标准输入流的扫描器对象,接收用户输入的IP地址。代码如下所示:protectedvoiddo_button_actionPerformed(ActionEvente)Stringtext=ipField.getText();Stringinfo=matches(text);showMessageDialog(null,info);}

//获取用户输//对输入文本进行IP验//用框输出验证结IPmathches()方法,该方法利用正则表达式对输入的字符串进行验证,并publicStringmatches(Stringtext)if(text!=null&&!text.isEmpty())//定义正则表达Stringregex="^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-+"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-+"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-+"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-//判断IP地址是否与正则表达式if(text.matches(regex))//返回判断信returntextn是一个合法的IP地址}else//返回判断信returntextn不是一个合法的IP}}//返回判断信return"请输入要验证的IP}【代码解析本实例的关键点在于IP地址格式与数字范围的验证,用户在输入IP地址时,程序可以获取的只有字符串类型,所以本实例利用字符串的灵活性和正则表达式搭配进行IP地址格式与String字符串类的方法,用于判断字符串与制定的正则表达式是否匹配。其语法如下:publicbooleanmathches(String实例052 鉴 【实例描述4.15所示。图4.15验证【实现过程Eclipse中新建项目PhoneNumberPhoneNumber.java文件。在该类的主方法中创建标准输入流的扫描器对象,接收用户输入的用户信息。代码如下所示:protectedvoiddo_button_actionPerformed(ActionEvente)Stringtext=phoneNumField.getText();Stringinfo=check(text);验

//获取用户输//对输入文本进行showMessageDialog(null, //用框输出验证果}publicStringcheck(Stringtext){if(text==null||text.isEmpty()){return"请输入}Stringregex="^\\d{3}-?\\d{8}|\\d{4}-?\\d{8}$";//判断输入数据是否为returntext+"\n是一个合法的returntext+"\n不是一个合法的}}JavaJava300前言前言【代码解析本实例使用正则表达式对进行了格式匹配验证。正则表达式通常被用于判断语句4-1所示。.*?点星.*?点星加匹配任何单个字符(注:点号在字符组内不算元字符表示之前的元素出现任意次数或0前面元素出现0次或1+-连字^$\[脱字符前面元素出现1次以如果出现在字符组的开头,则只能表示连字符本身表示开头。注意:^在字符组的头部,将转换成排除型字表示结转义字符范围描述符。[a-z]表示从a到z之间的任意英文字母和数字,即[0-9A-Za-非英文字母和数空字符,即非空字词边界字符(在范围描述符外部时),表示为单词的分界非词边界字制表|前面的元素字符出现n前面的元素最少出现m次,最多出现n选择 群组,子表【知识扩展Java对象(Java对象)必须先初始化才能使用,否则编译器会报告“使实例053 ASCII编码查看【实例描述ASCIIAmericanStandardCodeInformationInterchangeASCII编码128ASCII编码查看器,可以将字符转换为数字,也可以反4.16所示。【实现过程在Eclipse中新建项目 do_toNumberButton_actionPerformed(ActionEvente){

4.16ASCIIStringasciiasciiTextField.getText();//获得inti=Character.codePointAt(ascii,0);//求字符串的第一个字符的代码点label3.setText(""+i); //更新}protectedvoiddo_toASCIIButton_actionPerformed(ActionEvente)Stringnumber=numberTextField.getText(); char[]a=Character.toChars(Integer.parseInt(number));//求数字所对应的字符数label6.setText(new}

//更新【代码解析Character类是char类型的包装类,该类除了能将char类型的字符串转换成类型外,publicstaticintcodePointAt(char[]a,int【知识扩展Character类的方法和数据是通过UnicodeData文件中的信息定义的,该文件是 Consortium的UnicodeCharaterDatabase的一部分。此文件指定了各种属性,其中包括每个已定义的Unicode代码点或字符范围的名称和常规类别,此文件及其描述可以从 实例 对用户名进行比较排【实例描述组成,如lester_西楼听雨。这些用户名一般是根据用户 【实现过程EclipseUserNameSortUserNameSort.java文件。在该类的主方法中创建compareTo()方法对用户名进行比较排序,并将结果以字符串数组的顺序进行输出。代码如下所示:classuserNameimplements{publicStringpublicuserName(String{}publicintcompareTo(Object{

重 pareTo方

userNametempuser=(userName)o;Stringtemp=tempuser.sName; //按字符串sName的顺序排}publicString{return}}publicclassUserNameSortpublicstaticvoidmain(String{System.out.println("排序后的用TreeSetts=newTreeSet();//插入userName对象时,会自动调用compareTo方法ts.add(newuserName("Lester"));ts.add(newts.add(newuserName("Lily"));}}【代码解析按字典顺序比较两个字符串(compareTo)UnicodeString对象表示的字符序列与参数字符串所表示的字符序列进行比较。具4.18所示。【知识扩展Stringequals()方法,比较当前字符串对象是否与参数指定的字符串相同。equalsIgnoreCase()equals()方法的作equalsIgnoreCase()方法在运用时会忽略大小写。JavaJava300前言前言实例 批量替换特定的字符【实例描述split()方法拆分字符串,还可以使用字符串对象substring()方法截取一部分字符串,字符串对象为开发者提供了很多方便实用的功能。本实参数字符 依次比

后,结果返回正String对 字符

abcdeabcde 前,结果返回依次比负abamefabcdeabcdef依次比0abcdef4.18compareTo()图4.19批量替换特定的字符前言前言JavaJava300【实现过程Eclipse中新建项目ReplaceStringReplaceString.java文件。在该类获取用户输入的搜索字符串和替换字符串。最后通过replace()方法完成题目的要求。代码protectedvoiddo_button_actionPerformed(ActionEvente)StringsearchStr //获取搜索字串StringreplaceStr=replaceTextField.getText();Stringtext=txtArea.getText();

//获取替换字符//获取段落文StringnewTexttext.replace(searchStr, //执行替 //替换结果显示在文本域}【代码解析Stringreplace()方法返回一个新的字符串,它是通过用新的字符串,替换此字符串中出现的所有指定子字符串而得到的,原字符串并不会发生改变。其功能示例图如图4.20所012345字符 ello!strreplace()方str012345处理结 mllo!图4.20replace()方能示replace()方法可以方便地替换字符串中指定的内容。但有一点要注意,replace()方法并不是只替换掉一个匹配的字符串,而是替换掉所有匹配的字符串,由于【知识扩展String类的substring()方法可以对字符串进行取子字符串的操作。其4.21所示。字符 处理结hello! hello!字符 处理结substring()方hello! hello!4.21substring()方法的功能示前言前言JavaJava300实例 去掉字符串中的空【实例描述trim()方法去除字符串对象前端和后端的所有空格,但是,如果空格在字符串的中间位置出现,使用trim()方法是没有效果的,那么怎样才能【实现过程EclipseBlankDeleteBlankDelete.java文件。在该类的主去除字符串中的空格、回车、换行符和制表符。代码如下所示:图publicclassBlankDelete

publicstaticStringreplaceBlank(Stringstr){Stringdest="";if(str!=null)Patternp= Matcherm=p.matcher(str);dest=}return}publicstaticvoidmain(String[]args){Scannerscan=newScanner(System.in);System.out.println("输入测试字Stringstr1=}}【代码解析4.23所示。012345字符HELLO!deleteCharAt()方HLHLLO!处理结

图4.23deleteCharAt()方能示前言前言JavaJava300【知识扩展replace()方法,使用“去替换”,同样也可以达到去除实例 获取字符串中汉字的个【实例描述CharacterisDigit()方法可以判断字符中的某个字符是否为数字,使用Character类的isLetter()方法可以判断字符中的某个字符是否为字母。实例中将介绍法用来判断字符串中的某个字符是否为汉字,通过此方4.24所示。图4.24【实现过程Eclipse中新建项目ChineseCharacterChineseCharacter.java文件。protectedvoiddo_button_actionPerformed(ActionEvente)Stringtext=chineseArea.getText();intamount=0;

//获取用户输//创建汉字数量计数forinti0;itext.length(i遍历字符串每一个字booleanmatches=Pattern.matches("^[\u4E00-\u9FA5]{0,}$",""+if(matches){

////}}numField.setText(amount //在文本框显示}【代码解析本实例的关键点在于正则表达式的使用。Java提供了Pattern用于正则表达式的编译表示形式,该类提供的静态方法matches()可以执行正则表达式的匹配。该方法编译给定正则表达式 false。其语法如下:publicstaticbooleanmatches(Stringregex,CharSequence前言前言JavaJava300【知识扩展实例058 字符串的编码转【实例描述无论是对程序的本地化还是,都会涉及字符编码的转换问题。尤其在Web应用中GBK或者4.25所示。图4.25字符串的编码转【实现过程Eclipse中新建项目ChangeCharsetChangeCharset.java文件。在该能将汉字正确显示的I

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论