JAVA 中一些api(字符字符串缓冲,URL类,Math类方法,正则表达式)
CharBuffer字符缓冲区,
StringBuffer字符串缓冲区构造函数:
1,StringBuffer() 构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。 2,StringBuffer(CharSequence seq) public java.lang.StringBuilder(CharSequence seq) 构造一个字符串缓冲区,它包含与指定的 CharSequence 相同的字符。其中,CharSequence 是一个接口,它的所有已知实现类: CharBuffer, Segment, String, StringBuffer, StringBuilder 3,StringBuffer(int capacity) 构造一个不带字符,但具有指定初始容量的字符串缓冲区。 4,StringBuffer(String str) 构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。
package ch11exception;import java.util.regex.Matcher;import java.util.regex.Pattern;public class Test {public static void main(String[] args) {double a = -0.0;System.out.println(Math.sqrt(a)); // -0.0a = 0;System.out.println(Math.sqrt(a));// 0.0a = -0;System.out.println(Math.sqrt(a)); // 0.0a = -0.2;System.out.println(Math.sqrt(a));// NaNa = 0 / 0.0;System.out.println(a);// NaNa = 5 / 0.0;System.out.println(a);// Infinitya = -0.1 / 0.0;System.out.println(a);// -Infinitya = Math.sqrt(-1);System.out.println(a);// NaN ???// System.arraycopy(arg0, arg1, arg2, arg3, arg4);//字符串复制函数,在归并排序中可能用到System.out.println(System.getProperty("user.dir")); // 打印用户当前路径String patternString = "[^Jj]ava.+"; //.代表任何字符patternString = "\\p{Upper}";Pattern pattern = Pattern.compile(patternString);Matcher matcher = pattern.matcher("Z");if (matcher.matches()) {System.out.println("与指定的正则表达式匹配");}else{System.out.println("与指定的正则表达式不匹配");}}}Pattern p = Pattern.compile("a*b"); Matcher m = p.matcher("aaaaab"); boolean b = m.matches();package ch12io;import java.util.*;import java.util.regex.*;public class RegExTest{ public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("Enter pattern: "); String patternString = in.nextLine(); Pattern pattern = null; try { pattern = Pattern.compile(patternString); } catch (PatternSyntaxException e) { System.out.println("Pattern syntax error"); System.exit(1); } while (true) { System.out.println("Enter string to match: "); String input = in.nextLine(); if (input == null || input.equals("")) return; //程序直接结束了return Matcher matcher = pattern.matcher(input); if (matcher.matches()) { System.out.println("Match"); int g = matcher.groupCount(); if (g > 0) //组 { for (int i = 0; i < input.length(); i++) { for (int j = 1; j <= g; j++) if (i == matcher.start(j)) System.out.print('('); System.out.print(input.charAt(i)); for (int j = 1; j <= g; j++) if (i + 1 == matcher.end(j)) System.out.print(')'); } System.out.println(); } } else System.out.println("No match"); } }}package ch12io;import java.io.*;import java.net.*;import java.util.regex.*;//找到一个web网页上的超链接public class HrefMatch{ public static void main(String[] args) { try { // get URL string from command line or use default String urlString; if (args.length > 0) urlString = args[0]; else urlString = "http://www.bupt.edu.cn/"; // open reader for URL InputStreamReader in = new InputStreamReader(new URL(urlString).openStream()); // read contents into string buffer StringBuilder input = new StringBuilder(); int ch; while ((ch = in.read()) != -1) input.append((char) ch); // search for all occurrences of pattern String patternString = "<a\\s+href\\s*=\\s*("[^"]*"|[^\\s>])\\s*>"; Pattern pattern = Pattern.compile(patternString, Pattern.CASE_INSENSITIVE); //忽略大小写 Matcher matcher = pattern.matcher(input); while (matcher.find()) { int start = matcher.start(); int end = matcher.end(); String match = input.substring(start, end); System.out.println(match); } } catch (IOException e) { e.printStackTrace(); } catch (PatternSyntaxException e) { e.printStackTrace(); } }}