Java: StringTokenizer VS Split

Categories: Java; Tagged with: ; @ April 17th, 2009 21:52

两个的差别:

	public static void main(String[] args) {
		String str = "1,2,,3";
		String delimiter = ",";
		StringTokenizer tokens = new StringTokenizer(str, delimiter);
		while(tokens.hasMoreTokens()) {
			System.out.println(tokens.nextToken());
		}

		System.out.println("---------无聊的分割线---------");
		String[] result = str.split(delimiter);
		for (int i = 0; i < result.length; i++) {
			System.out.println(result[i]);
		}
	}

输出:

1

2

3

———无聊的分割线———

1

2

3

Java/ActionScript – String.split(), 及For in 小结

Categories: Java; Tagged with: ; @ February 15th, 2009 11:36

Java 5.0中:

public String[] split(String regex)

    根据给定正则表达式的匹配拆分此字符串。

    该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split 方法。因此,所得数组中不包括结尾空字符串。

    例如,字符串 "boo:and:foo" 使用这些表达式可生成以下结果:

        Regex     结果
        :     { "boo", "and", "foo" }
        o     { "b", "", ":and:f" }

    参数:
        regex – 定界正则表达式
    返回:
        字符串数组,它是根据给定正则表达式的匹配拆分此字符串确定的
    抛出:
        PatternSyntaxException – 如果正则表达式的语法无效
    从以下版本开始:
        1.4

 

注意: 使用转义字符.

如:

		String str = "192.168.1.1";
		String[] strs = str.split("\\.");
		for (String string : strs) {
			System.out.println(string);
		}

输出:

192

168

1

1

ActionScript中:

			var str:String = "192.168.1.1";
			var strsArray = str.split("\.");//str.split(".");
			for each(var s:String in strsArray) {
				trace(s);
			}
			for(var s:String in strsArray) {
				trace("for in " + strsArray);
			}

输出信息:

for-each-in 192

for-each-in 168

for-each-in 1

for-each-in 1

for in 0

for in 1

for in 2

for in 3

另外, 在AS中, for in 和for each in 的区别:

for-each-in 类似于Java5.0之后的for-in, 如上所使用

在AS中for-in的循环迭代于变量名中, 如上AS代码中的for-in输出的是Array的index[下标], 如果要打印value, 则应使用 在trace中使用strsArray[s].



// Proudly powered by Apache, PHP, MySQL, WordPress, Bootstrap, etc,.