`
李灵晖-raylee
  • 浏览: 129070 次
博客专栏
Group-logo
从头认识java
浏览量:0
文章分类
社区版块
存档分类
最新评论
文章列表
这一章节我们来介绍一下scanner的边界与使用正则表达式扫描。 1.scanner的边界 上一章节我们提到scanner里面有hasNext方法,可以检测是否还有字符串,其实这个就是边界符,检查字符串的边界。 package com.ray.ch11; import java.io.BufferedReader; import java.io.IOException; import java.io.StringReader; import java.util.Scanner; public class Test { private BufferedReader input = new ...
这一章节我们来讨论一下扫描输入。 因为很多时候我们都需要从文本文件里面读取相应的文本,然后进行处理,在输入到其他地方, 这个时候就需要我们下面介绍的扫描输入。 1.通常情况 package com.ray.ch11; import java.io.BufferedReade ...
这一章节我们来讨论一下Pattern和Matcher。 之前我们都是简单的使用正则表达式来匹配字符串,其实java里面提供了强大的正则匹配类,我们下面将以几个例子来说明。 package com.ray.ch11; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { public static void main(String[] args) { String testStr = "abc"; String[] regulars = { &qu ...
这一章节我们会简要的介绍一下正则表达式的基本语法。 我们的目的不是写出最复杂的表达式,是写出能够完成任务的表达式。 1.字符 字符 意义 \t 制表符 \n 换行 \r 回车 \f 换页 \e 转义 \xhh 十六进制 \uhhhh unicode十六进制 2.字符类 字符类 意义 . 任意字符 [abc] 包含abc的任意字符 [^abc] 不包含abc的任意字符 [a-zA-z] a-z的大小写任意字符 [abc[ijk]] 跟a|b|c|i|j|k的意义相同(并集) [a-z&&[ijk]] 只含有ijk的 ...
这一章节我们来感受一下正则表达式。 正则表达式就是以某种形式来描述字符串。 注意:在java里面正则表达式的反斜杠需要"\\"来描述,如果是普通的反斜杠,需要“\\\\”来描述。 在字符串中,可以使用正则的方法有几 ...
接着上一章节的内容,这一章节主要讲述格式化说明符以及Formatter的类型转换。 1.格式化说明符 %[argument_index$][flags][width][.precision]conversion 可选的 argument_index 是一个十进制整数,用于表明参数在参数列表中的位置。第一个参数由 "1$" 引用,第二个参数由 "2$" 引用,依此类推。可选的 flags 是修改输出格式的字符集。有效标志的集合取决于转换类型。 可选 width 是一个非负十进制整数,表明要向输出中写入的最少字符数。 可选 precision 是一个非负十进 ...
这一章节我们来讨论一下格式化输出,这个话题我们将通过两个章节来展开描述。 在c语言体系里面,用的最多的估计就是printf这个函数: printf("%d%f",a,b) 上面简单的一句,使用了格式化输出,%d表示输出整形数字,%f浮点数。 1.System.out.printf和System.out.format java继承c语言体系,当然也会有printf之类的函数,我们下面举例: package com.ray.ch11; public class Test { public static void main(String[] args) { int a ...
这一章节我们来讨论一下字符串里面的"+"与StringBuilder。 1.例子 package com.ray.ch11; public class Test { public static void main(String[] args) { String a = "a" + "b" + "c"; String d = a + "d"; } } 我们在这里使用jav ...
这一章节我们来讨论一下不变的字符串。 为什么说是不变? 我们先看String 的构造器 public String() { this.offset = 0; this.count = 0; this.value = new char[0]; } 其中里面的value,我们再看一下: /** The value is used for character storage. */ private final char value[]; value的标识符是final,因此,字符串在编译器里面是不可原地修改。 package com.ray.ch11; pub ...
这一章节我们来介绍一下使用异常的限制。 1.当父类与接口具有相同的方法而且方法同时抛出不同的异常,这个时候是不允许的。 下面是错误的代码: package com.ray.ch10; public class Test extends Father implements MyInterface {//Exception AException in throws clause of Father.methodA() is not compatible with MyInterface.methodA() } class AException extends Exception { ...
这一章节我们来讨论一下使用finally致使异常的丢失。 这个其实是非常偶然的错误,我们一般是不会犯的。 package com.ray.ch10; public class Test { public static void main(String[] args) throws Exception2 { try { throw new Exception1("Exception1"); } finally { throw new Exception2("Exception2"); } } } class Excepti ...
这一章节我们来讨论一下finally用来做什么? 答案:回复资源到原始状态。如数据库连接、文件流、图形等等。 由于java里面没有析构函数,但是有垃圾回收机制,try里面的都是以局部变量进行操作,所以内存都会得到释放,但是很多时候我们在try外面就已经定义了的变量,然后在try里面赋值使用,如数据库连接、文件流、图形等等,那么现在就必须使用finally来使得它们恢复到最初的状态。 下面是几个例子: (1)文件流 package com.ray.ch10; import java.io.File; import java.io.FileInputStream; import java.io. ...
这一章节我们来讨论一下finally。 特性:finally总能够被执行。 package com.ray.ch10; public class Test { private void test() throws Exception { throw new Exception(); } public static void main(String[] args) { try { new Test().test(); } catch (Exception e) { e.printStackTrace(); } finally { System.out ...
这一章节我们来讨论一下出现异常的时候的栈轨迹和重新抛出异常。 1.栈轨迹 打印栈轨迹有两种方式: (1)不改变原先的代码 package com.ray.ch10; public class Test { public static void main(String[] args) { try { throw new Exception("cause"); } catch (Exception e) { e.printStackTrace(); } } } 输出:java.lang.Exception: cause at com.ray.ch ...
我们这一章节来讨论一下捕获所有异常。 其实捕获所有异常非常简单,只需要直接catch Exception就可以了。 public class Test { public static void main(String[] args) { try { throw new Exception("cause"); } catch (Exception e) { } } } ...
Global site tag (gtag.js) - Google Analytics