public class Array { public static void main(String args[]) { /* Java的数组是引用类型,声明数组时不能指定其长度,其元素可以是基础类型也可以是引用类型。 */ dynamicInit(); staticInit(); defaultValue(); twoDimensionalArray(); } private static void dynamicInit() { /* 动态初始化数组: 数组定义 与 空间分配和元素赋值 分开进行 */ int a[];//数组定义; a = new int[3];//分配空间 for (int i=0; i<3; i++) a[i] = i;//对元素赋值 Person b[];//数组定义 b = new Person[3];//分配空间 for (int j=0; j<3; j++) b[j] = new Person(j);//对元素赋值 } private static void staticInit() { /* 静态初始化数组 */ int a[] = {0, 1, 2};//数组定义 与 空间分配和元素赋值 同时进行 Person b[] = {new Person(0), new Person(1), new Person(2)}; } private static void defaultValue() { /* 数组被分配空间后, */ int a[] = new int[3]; System.out.println(a[2]);//0 Person b[] = new Person[3]; System.out.println(b[2]);//null boolean c[] = new boolean[3]; System.out.println(c[2]);//false double d[] = new double[3]; System.out.println(d[2]);//0.0 } private static void twoDimensionalArray() { /* 二维数组的声明和初始化须从一维到二维的顺序进行 */ int a[][] = new int[3][]; a[0] = new int[2]; a[1] = new int[3]; a[2] = new int[2]; //int a[3][2];ERROR!!! //int a[][] = new int[][3];//ERROR!!! } } class Person { public int age; Person(int age) { this.age = age; } }
Archive for 九月, 2009
30th
九月
九月
Java SE简记(17): 数组
import java.util.regex.Pattern; import java.util.regex.Matcher; import java.io.*; public class EmailSpider { public static void main(String args[]) { /* 使用正则表达式抓取并打印网页源代码中的所有邮件 */ try { BufferedReader br = new BufferedReader(new FileReader("test.htm")); String line = null; while ((line=br.readLine()) != null) { parse(line); } } catch(FileNotFoundException e) { e.printStackTrace(); } catch(IOException e) { e.printStackTrace(); } } private static void parse(String line) { //参见 RFC2821, RFC2822 Pattern p = Pattern.compile("[a-zA-Z](\\w*[-_]?\\w+)*@(\\w*[-_]?\\w+)+\\.[a-zA-Z]{2,3}(\\.[a-zA-Z]{2})?"); //Pattern p = Pattern.compile(\\w+([-.+]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*); Matcher m = p.matcher(line); while (m.find()) { System.out.println(m.group()); } } }
import java.util.regex.Pattern; import java.util.regex.Matcher; public class BackReference { public static void main(String args[]) { test_1(); test_2(); test_3(); } private static void test_1() { Pattern p = Pattern.compile("(\\d\\d)\\1"); Matcher m = p.matcher("1212");//12与12相同 System.out.println(m.matches());//true } private static void test_2() { Pattern p = Pattern.compile("(\\d(\\d))\\2"); Matcher m = p.matcher("1212");//1与2不同 System.out.println(m.matches());//false } private static void test_3() { Pattern p = Pattern.compile("(\\d(\\d))\\2"); Matcher m = p.matcher("122");//2与2相同 System.out.println(m.matches());//true } }






