文本应用

程序在运行的时候,我们要给程序输入数据,程序根据输入的数据作出响应。 常见的输入方式有:
    命令行参数
    系统属性
    标准的输入
    在程序中实现文件的创建,读,写
    Math 类是用来支持数学计算的,它打包在 java.lang 包中,包含一组静态方法和两个常数,是终态(final)的,它不能被实例化。
    正则表示式的功能是 J2SE 1.4 之后加入的新功能。String 的 matches()、replaceAll()等方法,所传入的参数就是正则表示式(Regular expression)的字符串;可以在API 文件的 java.util.regex.Pattern 类中找到有关正则表示式的相关信息。
    例如一些常用的范围,我们可以使用预先定义的字符类别:
.  表示任一字符  
/d  表示 [0-9] 数字  
/D  表示 [^0-9] 非数字  
/s  表示 [ /t/n/x0B/f/r] 空格符  
/S  表示 [^ /t/n/x0B/f/r] 非空格符  
/w  表示 [a-zA-Z_0-9] 数字或是英文字  
/W  表示 [^a-zA-Z_0-9] 非数字与英文字  
. 表示任一字符。例如有一字符串 abcdebcadxbc,使用.bc 来比对的话,符合的子字符串有abc、ebc、xbc 三个。 
以上的例子来根据字符比对,您也可以使用「字符类」(Character class)来比较一组字符范围,例如: 
[abc]  a、b 或c  
[^abc]  非a、b、c 的其它字符  
[a-zA-Z]  a到z 或A 到Z(范围)  
[a-d[m-p]]  a 到d 或m 到p(联集)  
[a-z&&[def]]  d、e 或f(交集)  
[a-z&&[^bc]]  a到 z,除了b 与 c之外(差集)  
[a-z&&[^m-p]]  a 到z且没有 m 到p(a-lq-z)(差集)
 
可以指定字符可能出现的次数: 
X?  X出现一次或完全没有  
X*  X出现零次或多次  
X+  X出现一次或多次  
X{n}  X 出现n 次  
X{n,}  X出现至少n次  
X{n,m}  X出现至少n 次,但不超过 m次  
    在 String 类别中,matches()方法可以让您验证字符串是否符合指定的正规表示式,这通常用于验证使用者输入的字符串数据是否正确,例如电话号码格式;replaceAll()方法可以将符合正规表示式的子字符串置换为指定的字符串;split()方法可以让您依指定的正规表示式,将符合的子字符串分离出来,并以字符串数组传回。
    StringBuffer 对象是一个可以改变的统一编码字符串。String 与StringBuffer 之间没有继承关系。 在JDK5.0中新加入了StringBuilder类,它类似于StringBuffer类,只是该类的方法是非线程安全的;因此在不需要考虑线程安全时可以考虑这个类替换StringBuffer类。
    StringBuffer与 String 的区别主要是效率上的区别。它们都可以表示一个字符串对象,只不过 String 类型的字符串对象,只要值改变,存储的空间也会改变,而 StringBuffer 是在原来的空间上进行修改的。所以要进行大量的字符串操作,要用StringBuffer. 而如果不是频繁操作字符串对象,两者都可以,只不过String 更方便些,因为用两个双引号就可以表示一个Sting对象。所以前者常被作为字符串变量,后者常被作为字符串常量。 
    集合可用于保存,处理 Object 类型的对象。这允许在收集中贮存任何对象。它还可以,在使用对象前、从集合中检索到它之后,使用正确的类型转换为我们所需要的对象类型。Java在 Java.util 包中提供了一组 API。这组 API 中的大部分类都实现了 Collection 接口,因此,被称作 Collections API。集合根据它们处理的不同种类的数据结构,Collections API可分为三类: 
    (Collection)收集-没有具体顺序的一组对象;
    (Set)设定-没有重复的一组对象;
    (List)列表-有序对象组,允许重复.
    当一个 Java 应用程序从终端启动时,用户可以提供零个或多个命令行参数。这些命令行参数都是字符串,这些字符串可以是独立的记号(如:arg1),也可以是引号之间的多个符号("another arg")。参数序列跟在程序类的名字后面输入;然后被存放在String 对象的数组中,传递给 main 方法。
    系统属性是另外一种在运行时向程序传递参数的机制。每个属性都是一个属性名和属性值的映射对。属性名和属性值都是字符串。Properties 类表示这样的映射。System.getProperties 方法返回系统的属性对象。System.getProperties(String) 方法返回 String 属性的值。在虚拟机参数中输入-Dxxx=value(xxx代表一个名字,value对应一个值)。
    多数应用都会发生人机交互,人机交互经常通过控制台文本输入/输出来完成。Java 2 SDK 用公有类java.lang.System支持控制台I/O。System.out是一个PrintStream对象,它指向运行 Java应用程序的终端窗口。 System.in是一个InputStream对象,它指向用户的键盘。 JDK1.5 新特性:java.util.Scanner 类;JDK1.6新特性:java.io.Console类。
    可以用迭代扫描一个集合。基本的Iterator 接口可以向前扫描任何集合。对于一个Set来说,它的迭代是没有顺序的。对于一个 List 来说,它的迭代的顺序与 List 中元素的顺序相同,只能向前,不能后退。此外,List 对象还支持 ListIterator接口,允许迭代向后移动。用迭代器还可以修改容器里的数据,只不过只能用当前的迭代器修改,不能两个迭代器同时修改一个容器里的数据!
    Java 在 Collections API 的 Map 接口中声明了一对一的映射。当向映射中插入一对关键字和值时,如果出现关键字重用,则用新值替换映射中原有的值,不在映射中增加一个元素。 
    对于复杂的应用,尤其是生成报表时,排序是一种必不可少的基本操作。在 JavaCollections API中,已经实现了几种排序。给数组排序可以使用Arrays 对象的一套 sort方法。
    你可以使用一个 File 对象来代替一个 String 作为 FileInputStream 和FileOutputStream 对象的构造函数参数。这是一种推荐方法,因为它独立于本地文件系统的约定。File 类提供了若干处理文件和获取它们基本信息的方法。在 java 技术中,目录也是一个文件。可以用isDirectory()进行判定到底是不是目录,用isFile()判定到底是不是文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值