正则表达式定了字符串的模式,用来搜索、编辑或处理文本。正则表达式的实例及描述:
注意字符串中的 \s+。 匹配单词 “this” 后面的 \s+ 可以匹配多个空格,之后匹配 is 字符串,再之后 \s+ 匹配多个空格然后再跟上 text 字符串。 |
|
^ 定义了以什么开始 \. 匹配 “.” |
在 Java 中,\\ 表示:我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义。
字符 |
说明 |
\ |
将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如, n匹配字符 n。\n 匹配换行符。序列 \\\\ 匹配 \\ ,\\( 匹配 (。 |
^ |
匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性,^ 还会与”\n”或”\r”之后的位置匹配。 |
$ |
匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,$ 还会与”\n”或”\r”之前的位置匹配。 |
* |
|
+ |
一次或多次匹配前面的字符或子表达式。例如,”zo+”与”zo”和”zoo”匹配,但与”z”不匹配。+ 等效于 {1,}。 |
? |
零次或一次匹配前面的字符或子表达式。例如,”do(es)?”匹配”do”或”does“中的”do”。? 等效于 {0,1}。 |
{n} |
|
{n,} |
n 是非负整数。至少匹配 n 次。例如,”o{2,}”不匹配”Bob“中的”o”,而匹配”foooood“中的所有 o。”o{1,}”等效于”o+”。”o{0,}”等效于”o*”。 |
{n,m} |
m 和 n 是非负整数,其中 n <= m。匹配至少 n 次,至多 m 次。例如,”o{1,3}”匹配”fooooood“中的头三个 o。’o{0,1}’ 等效于 ‘o?’。注意:您不能将空格插入逗号和数字之间。 |
? |
当此字符紧随任何其他限定符(*、+、?、{n}、{n,}、{n,m})之后时,匹配模式是”非贪心的”。”非贪心的”模式匹配搜索到的、尽可能短的字符串,而默认的”贪心的”模式匹配搜索到的、尽可能长的字符串。例如,在字符串”oooo”中,”o+?”只匹配单个”o”,而”o+”匹配所有”o”。 |
. |
|
(pattern) |
匹配 pattern 并捕获该匹配的子表达式。可以使用 $0…$9 属性从结果“匹配”集合中检索捕获的匹配。若要匹配括号字符 ( ),请使用“\(“或者”\)”。 |
(?:pattern) |
匹配 pattern 但不捕获该匹配的子表达式,即它是一个非捕获匹配,不存储供以后使用的匹配。这对于用”or”字符 (|) 组合模式部件的情况很有用。例如,’industr(?:y|ies) 是比 ‘industry|industries‘ 更经济的表达式。 |
(?=pattern) |
执行正向预测先行搜索的子表达式,该表达式匹配处于匹配 pattern 的字符串的起始点的字符串。它是一个非捕获匹配,即不能捕获供以后使用的匹配。例如,’Windows (?=95|98|NT|2000)’ 匹配”Windows 2000″中的”Windows”,但不匹配”Windows 3.1″中的”Windows”。预测先行不占用字符,即发生匹配后,下一匹配的搜索紧随上一匹配之后,而不是在组成预测先行的字符后。 |
(?!pattern) |
执行反向预测先行搜索的子表达式,该表达式匹配不处于匹配 pattern 的字符串的起始点的搜索字符串。它是一个非捕获匹配,即不能捕获供以后使用的匹配。例如,’Windows (?!95|98|NT|2000)’ 匹配”Windows 3.1″中的 “Windows”,但不匹配”Windows 2000″中的”Windows”。预测先行不占用字符,即发生匹配后,下一匹配的搜索紧随上一匹配之后,而不是在组成预测先行的字符后。 |
x|y |
匹配 x 或 y。例如,’z|food‘ 匹配”z”或”food“。'(z|f)ood’ 匹配”zood”或”food”。 |
[xyz] |
|
[^xyz] |
|
[a-z] |
|
[^a-z] |
|
\b |
匹配一个字边界,即字与空格间的位置。例如,”er\b“匹配”never”中的”er”,但不匹配”verb“中的”er”。 |
\B |
非字边界匹配。”er\B”匹配”verb”中的”er”,但不匹配”never”中的”er”。 |
匹配 x 指示的控制字符。例如,\cM 匹配 Control-M 或回车符。x 的值必须在 A-Z 或 a-z 之间。如果不是这样,则假定 c 就是”c“字符本身。 |
|
\d |
数字字符匹配。等效于 [0-9]。 |
\D |
非数字字符匹配。等效于 [^0-9]。 |
\f |
换页符匹配。等效于 \x0c 和 \cL。 |
\n |
换行符匹配。等效于 \x0a 和 \cJ。 |
\r |
匹配一个回车符。等效于 \x0d 和 \cM。 |
\s |
匹配任何空白字符,包括空格、制表符、换页符等。与 [ \f\n\r\t\v] 等效。 |
\S |
匹配任何非空白字符。与 [^ \f\n\r\t\v] 等效。 |
\t |
制表符匹配。与 \x09 和 \cI 等效。 |
\v |
垂直制表符匹配。与 \x0b 和 \cK 等效。 |
\w |
匹配任何字类字符,包括下划线。与”[A-Za-z0-9_]”等效。 |
\W |
与任何非单词字符匹配。与”[^A-Za-z0-9_]”等效。 |
\xn |
匹配 n,此处的 n 是一个十六进制转义码。十六进制转义码必须正好是两位数长。例如,”\x41″匹配”A”。”\x041″与”\x04″&”1″等效。允许在正则表达式中使用 ASCII 代码。 |
\num |
|
\n |
标识一个八进制转义码或反向引用。如果 \n 前面至少有 n 个捕获子表达式,那么 n 是反向引用。否则,如果 n 是八进制数 (0-7),那么 n 是八进制转义码。 |
\nm |
标识一个八进制转义码或反向引用。如果 \nm 前面至少有 nm 个捕获子表达式,那么 nm 是反向引用。如果 \nm 前面至少有 n 个捕获,则 n 是反向引用,后面跟有字符 m。如果两种前面的情况都不存在,则 \nm 匹配八进制值 nm,其中 n 和 m 是八进制数字 (0-7)。 |
\nml |
当 n 是八进制数 (0-3),m 和 l 是八进制数 (0-7) 时,匹配八进制转义码 nml。 |
\un |
Java方法是语句的集合,一起执行一个功能。方法是解决一类问题的步骤的有序组合;方法包含于类或对象中;方法在程序中被创建,在其他地方被引用。
方法的命名规则:方法的名字的第一个单词应以小写字母做开头,后面的单词则用大写字母开头写。不使用连接符;下划线可能出现在JUnit测试方法名称中用以分隔名称的逻辑组件。
方法的定义:
…
方法体
…
}
其中修饰符:可选,告诉编译器如何调用该方法,定义该方法的访问类型;返回值,有些方法有返回值,有些方法没有返回值;当方法被调用时,传递值给参数,方法可以有参数,也可以不包含参数;方法体包含具体的雨具,定义该方法的功能。
三、Java stream、file、IO、Scanner类:
Java.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。Java.io 包中的流支持很多种格式,比如:基本类型、对象、本地化字符集等等。一个流可以理解为一个数据的序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据。
为了获得一个绑定到控制的字符流,用BufferedReader 对象创建字符流,BufferedReader的基本语法:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int read( ) throws IOException
String readLine( ) throws IOException
OutputStream类write()方法用来往控制台写操作:
FileInputStream流用于从文件读取数据,它的对象可以用关键字new来创建:
InputStream f = new FileInputStream(“C:/java/hello“);
File f = new File(“C:/java/hello“);
InputStream in = new FileInputStream(f);
创建InputStream对象,使用下面的方法读取流或其他流操作:
序号 |
方法及描述 |
1 |
public void close() throws IOException{} |
2 |
protected void finalize()throws IOException {} |
3 |
public int read(int r)throws IOException{} |
4 |
public int read(byte[] r) throws IOException{} |
5 |
public int available() throws IOException{} |
FileOutputStream流用来创建一个文件并向文件中写入数据。创建输出流对象:
OutputStream f = new FileOutputStream(“C:/java/hello“)
File f = new File(“C:/java/hello“);
OutputStream fOut = new FileOutputStream(f);
创建OutputStream 对象后,使用下面的方法写入流或其他流操作:
序号 |
方法及描述 |
1 |
public void close() throws IOException{} |
2 |
protected void finalize()throws IOException {} |
3 |
public void write(int w)throws IOException{} |
4 |
public void write(byte[] w) |
18.4、文件和I/O:
File Class类、FileReader Class类、FileWriter Class类
mkdir()-创建一个文件夹,成功返回true,失败返回false;
public static void main(String[] args) {
String dirname = “/tmp/user/java/bin“;
// 现在创建目录
}
}
18.6、读取目录:
public static void main(String args[]) {
File f1 = new File(dirname);
System.out.println(“目录 ” + dirname);
for (int i = 0; i < s.length; i++) {
File f = new File(dirname + “/” + s[i]);
System.out.println(s[i] + ” 是一个目录”);
} else {
System.out.println(s[i] + ” 是一个文件”);
}
}
} else {
System.out.println(dirname + ” 不是一个目录”);
}
}
}
18.7、删除目录和文件:
删除文件可以使用 java.io.File.delete() 方法。
public static void main(String[] args) {
File folder = new File(“/tmp/java/”);
deleteFolder(folder);
}
// 删除文件及目录
public static void deleteFolder(File folder) {
File[] files = folder.listFiles();
for (File f : files) {
deleteFolder(f);
} else {
f.delete();
}
}
}
folder.delete();
}
}
Java.util.Scanner类用来获取用户的输入(通过Scanner类的next()和nextline()方法获取输入的字符串)。Scanner对象的基本语法:
Scanner s = new Scanner(System.in);
使用next()方法:
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println(“next方式接收:”);
String str1 = scan.next();
System.out.println(“输入的数据为:” + str1);
}
}
}
使用nextline()方法:
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
// 从键盘接收数据
System.out.println(“nextLine方式接收:”);
String str2 = scan.nextLine();
System.out.println(“输入的数据为:” + str2);
}
scan.close();
}
}
next()和nextline()的区别:
next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格,next()方法会自动将其去掉,只有输入有效字符后才将其后面输入的空格作为分隔符或者结束符,next()不能得到带有空格的字符串;nextline()以enter为结束符,即nextline()方法返回的是输入回车之前的所有字符,可以获得空格。
原文地址:https://blog.csdn.net/corlin6688/article/details/134527087
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_#ID#.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!