文章列表
这一章节我们来介绍一下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 ...
- 2015-12-03 10:30
- 浏览 372
- 评论(0)
这一章节我们来讨论一下扫描输入。
因为很多时候我们都需要从文本文件里面读取相应的文本,然后进行处理,在输入到其他地方, 这个时候就需要我们下面介绍的扫描输入。
1.通常情况
package com.ray.ch11;
import java.io.BufferedReade ...
- 2015-12-03 10:03
- 浏览 472
- 评论(0)
这一章节我们来讨论一下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 ...
- 2015-12-02 15:28
- 浏览 547
- 评论(0)
这一章节我们会简要的介绍一下正则表达式的基本语法。
我们的目的不是写出最复杂的表达式,是写出能够完成任务的表达式。
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的 ...
- 2015-12-02 11:58
- 浏览 419
- 评论(0)
这一章节我们来感受一下正则表达式。
正则表达式就是以某种形式来描述字符串。
注意:在java里面正则表达式的反斜杠需要"\\"来描述,如果是普通的反斜杠,需要“\\\\”来描述。
在字符串中,可以使用正则的方法有几 ...
- 2015-12-02 10:06
- 浏览 493
- 评论(0)
接着上一章节的内容,这一章节主要讲述格式化说明符以及Formatter的类型转换。
1.格式化说明符
%[argument_index$][flags][width][.precision]conversion 可选的 argument_index 是一个十进制整数,用于表明参数在参数列表中的位置。第一个参数由 "1$" 引用,第二个参数由 "2$" 引用,依此类推。可选的 flags 是修改输出格式的字符集。有效标志的集合取决于转换类型。
可选 width 是一个非负十进制整数,表明要向输出中写入的最少字符数。
可选 precision 是一个非负十进 ...
- 2015-12-01 16:38
- 浏览 313
- 评论(0)
这一章节我们来讨论一下格式化输出,这个话题我们将通过两个章节来展开描述。
在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 ...
- 2015-12-01 15:48
- 浏览 291
- 评论(0)
这一章节我们来讨论一下字符串里面的"+"与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 ...
- 2015-11-30 22:48
- 浏览 448
- 评论(0)
这一章节我们来讨论一下不变的字符串。
为什么说是不变?
我们先看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 ...
- 2015-11-30 19:23
- 浏览 440
- 评论(0)
这一章节我们来介绍一下使用异常的限制。
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 {
...
- 2015-11-29 22:47
- 浏览 523
- 评论(0)
这一章节我们来讨论一下使用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 ...
- 2015-11-26 22:07
- 浏览 349
- 评论(0)
这一章节我们来讨论一下finally用来做什么?
答案:回复资源到原始状态。如数据库连接、文件流、图形等等。
由于java里面没有析构函数,但是有垃圾回收机制,try里面的都是以局部变量进行操作,所以内存都会得到释放,但是很多时候我们在try外面就已经定义了的变量,然后在try里面赋值使用,如数据库连接、文件流、图形等等,那么现在就必须使用finally来使得它们恢复到最初的状态。
下面是几个例子:
(1)文件流
package com.ray.ch10;
import java.io.File;
import java.io.FileInputStream;
import java.io. ...
- 2015-11-26 21:58
- 浏览 572
- 评论(0)
这一章节我们来讨论一下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 ...
- 2015-11-26 21:34
- 浏览 425
- 评论(0)
这一章节我们来讨论一下出现异常的时候的栈轨迹和重新抛出异常。
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 ...
- 2015-11-26 21:07
- 浏览 380
- 评论(0)
我们这一章节来讨论一下捕获所有异常。
其实捕获所有异常非常简单,只需要直接catch Exception就可以了。
public class Test {
public static void main(String[] args) {
try {
throw new Exception("cause");
} catch (Exception e) {
}
}
}
...
- 2015-11-26 20:53
- 浏览 367
- 评论(0)