import java.util.StringTokenizer;
public class StrTokenizerTest {
public static void main(String[] args) {
StringTokenizer fenxi = new StringTokenizer("a [email protected]","@");
int n = fenxi.countTokens();
System.out.println(n);
}
}
对于这种情况"@"不加空格得到的是2
如果加上空格StringTokenizer fenxi = new StringTokenizer("a [email protected]"," @");
得到的结果就是3
想知道StringTokenizer的这个对于CountTokens的返回值是可以理解被分隔符分了多少份的吧?
还有就是对于加不加空格的这个问题。
public class StrTokenizerTest {
public static void main(String[] args) {
StringTokenizer fenxi = new StringTokenizer("a [email protected]","@");
int n = fenxi.countTokens();
System.out.println(n);
}
}
对于这种情况"@"不加空格得到的是2
如果加上空格StringTokenizer fenxi = new StringTokenizer("a [email protected]"," @");
得到的结果就是3
想知道StringTokenizer的这个对于CountTokens的返回值是可以理解被分隔符分了多少份的吧?
还有就是对于加不加空格的这个问题。
解决方案 »
- java程序员的未来
- Windows下创建的txt文件到solaris上用java读取变成乱码~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- JTextField添加释放键盘事件
- 对于异常处理的架构,大家有没有什么好的建议
- 【请教各位朋友、高手、版主】java 图形界面 多线程 运行的原理和本质
- 关于JSP页面中引用回复的功能
- 大家讨论下线程的问题啊,都发表下意见嘛(有实例)
- 高手请进,时间同步问题:如何更改另一IP的机器上的时间?
- 菜鸟提问: 在JAVA中判断一JTextField 的输入值有几种办法??谢谢!!
- 如何实现数据的校验
- 两种写法有什么不同?
- java 泛型的例子
后面那个" @"表示的是分隔符,就是以空格和@将字符串分隔成一个个的Token
如果你不加空格,就是只以@作为分隔符。
当然你也可以写其他的,比如 ",. @"
这样得到的是2,这个肯定没有问题,就是正常理解可是StringTokenizer fenxi = new StringTokenizer("ao [email protected]"," @");这种情况就是3了
而 StringTokenizer fenxi = new StringTokenizer("ao [email protected]","@");这种情况是2
我是想知道这个是怎么回事
是的还有就是对于加不加空格的这个问题。
给定的分隔符字符串中(第二个参数),每一个字符都是一个分隔符,而不是整个字符串是一个分隔符。所以加空格后,就表示当前有两个分隔符,空格和@。
这种情况下的分隔符就是" "和"@",解析的结果为:a、ooo、sina.com
而 StringTokenizer fenxi = new StringTokenizer("a [email protected]","@");
这种情况下的分隔符就只有"@",解析的结果为:a ooo和sina.comStringTokenizer的构造函数有以下三种:
public StringTokenizer(String str):构造一个用来解析str的StringTokenizer对象。java默认的分隔符是“空格”、“制表符(‘\t’)”、“换行符(‘\n’)”、“回车符(‘\r’)”
public StringTokenizer(String str, String delim):构造一个用来解析str的StringTokenizer对象,并提供一个指定的分隔符。
public StringTokenizer(String str, String delim, boolean returnDelims):构造一个用来解析str的StringTokenizer对象,并提供一个指定的分隔符,同时,指定是否返回分隔符。
第一个参数就是要分隔的String,第二个是分隔字符集合,第三个参数表示分隔符号是否作为标记返回,如果不指定分隔字符,默认的是:”\t\n\r\f”;
fenxi.countTokens();返回nextToken方法被调用的次数。如果采用构造函数1和2,返回的就是分隔符数量,采用有三个参数的构造函数就要加上分隔符本身如:
package com.shine.test;import java.util.StringTokenizer;public class StrTokenizerTest {
public static void main(String[] args) {
StringTokenizer fenxi = new StringTokenizer("a [email protected]", " @",true);
int n = fenxi.countTokens();
System.out.println(n);
while (fenxi.hasMoreTokens()) {
System.out.println(fenxi.nextToken());
} }
}
结果为:
5
a
ooo
@
sina.com
linjiafu更不说了。。