有时我们需要分析字符串并将字符串分解成可被独立使用的单词,这些单词叫做语言符号。例如,对于字符串“We are students”,如果我们把空格作为该字符串的分隔符,那么该字符串有三个单词,语言符号。而对于字符串“We ,are,student”如果我们把逗号作为了该字符串的分隔符,那么该字符串有三个单词,语言符号。
当我们分析一个字符串并将字符串分解成可被独立使用的单词时,可以使用java.util包中的StringTokenizer类,该类有两个常用的构造方法。
·StringTokenizer (String s) 为字符串s构造一个分析器,使用默认的分隔符集合(即空格符),若干个空格被看做一个空格,换行符,回车符,Tab符,进纸符。
·StringTokenizer(String s,String delim)为字符串s构造一个分析器。参数dilim中的字符被作为分隔符。
例如:
StringTokenizer fenxi=new StringTokenizer("we are student");
StringTokenizer fenxi=new StringTokenizer("we,are,student",",;");
我们把一个StringTokenizer对象称作一个字符串分析器。一个分析器可以使用nextToken()方法逐个获取字符串中的语言符号(单词),每当调用nextToken()时,都将在字符串中获得下一个语言符号。通常用while循环来逐个获取语言符号,为了控制循环,我们可以使用StringTokenizer类中的hasMoreTokens()方法,只要字符串中还有语言符号,该方法就返回true,否则返回false。另外我们还可以调用countTokens()方法得到字符串一共有多少个语言符号。
下面是一个应用程序,分析字符串,分别输出字符串的单词,并统计单词个数。
例子7:
import java.util.*;
public class Example5_7
{
public static void main(String args[])
{
String s="I am Geng.X.y,she is my girlfriend";
StringTokenizer fenxi=new StringTokenizer(s,","); //空格和逗号做分
int number=fenxi.countTokens();
while(fenxi.hasMoreTokens())
{
String str=fenxi.nextToken();
System.out.println(str);
System.out.println("还剩"+fenxi.countTokens()+"个单词");
}
System.out.println("s共有单词"+number+"个");
}
}
附加一个经典编程题:
/**********************************
现在输入n个数字,以逗号分开;然后升或者降序排序;
***********************************/
import java.util.*;
public class bycomma{
public static String[] splitStringByComma(String source){
if(source==null||source.trim().equals(""))
return null;
StringTokenizer commaToker = new StringTokenizer(source,",");
String[] result = new String[commaToker.countTokens()]; //
int i=0;
while(commaToker.hasMoreTokens()){
result[i] = commaToker.nextToken();
i++;
}
return result;
}
public static void main(String args[]){
String[] s = splitStringByComma("5,8,7,4,3,9,1");
int[] ii = new int[s.length];
for(int i = 0;i<s.length;i++){
ii[i] =Integer.parseInt(s[i]);
}
Arrays.sort(ii);
//asc 由小到大
for(int i=0;i<s.length;i++){
System.out.println(ii[i]);
}
System.out.println("/n");
//desc 由大到小
for(int i=(s.length-1);i>=0;i--){
System.out.println(ii[i]);
}
}
}
转自http://blog.csdn.net/xiaosan1987925/article/details/3245144
相关推荐
### Java.util.Date与Java.sql.Date互转及字符串转换为日期时间格式 #### 一、Java.util.Date与Java.sql.Date的基本概念 在Java编程语言中,处理日期和时间时经常使用到`java.util.Date`和`java.sql.Date`这两个类...
Java.util.Date与java.sql.Date的互转及字符串转换为日期时间格式 java.util.Date和java.sql.Date是Java中两个常用的日期时间类,分别属于不同的包。java.util.Date是Java标准库中的日期时间类,而java.sql.Date是...
Java标准库提供了两个重要的日期类:`java.util.Date` 和 `java.sql.Date`。虽然它们名字相似,但在实际应用中有着不同的用途和特性。`java.util.Date` 主要用于表示具体的瞬间,而 `java.sql.Date` 专门用于SQL语句...
### 使用 Java.util.zip 包实现数据压缩与解压 在计算机科学领域,数据压缩技术是一项重要的功能,它能够帮助减少存储空间的需求以及提高网络传输效率。本文将通过一系列的示例来详细介绍如何利用 Java 中的 `java....
1. java.util.concurrent - Java 并发工具包 2. 阻塞队列 BlockingQueue 3. 数组阻塞队列 ArrayBlockingQueue 4. 延迟队列 DelayQueue 5. 链阻塞队列 LinkedBlockingQueue 6. 具有优先级的阻塞队列 ...
在Java编程语言中,`java.util.InputMismatchException`是一个常见的运行时异常,它通常发生在尝试从数据源(如控制台、文件或数据库)读取数据时,遇到的数据类型与预期的不匹配。在这个特定的场景中,问题出在主线...
本篇文章将详细介绍如何将`java.util.Date`对象转换为符合特定格式的JSON字符串,从而实现更加标准化的数据交换。 #### 一、问题背景与目标 在Java中,`java.util.Date`类用于表示具体的时间点,它包含了毫秒级别...
例如,对于格式为"yyyy-mm-dd"的字符串,可以使用`SimpleDateFormat`的`parse()`方法将其转换为`java.util.Date`,然后再转换为`java.sql.Date`。如果需要插入数据库,还可以利用数据库特定的函数,如Oracle的`TO_...
Java编程语言提供了多种日期时间类来处理不同的场景需求,其中`java.util.Date`和`java.sql.Date`是两个常见的日期类型,它们之间存在一定的差异和转换关系。 `java.util.Date`是Java标准库中的基础日期类,它表示...
Java提供日期(Data)类、日历(Calendar)类,随机数(Random)类,堆栈(Stack)、向量(Vector) 、位集合(Bitset)以及哈希表(Hashtable)等类来表示相应的数据结构
这是我在编写struts2中遇到的问题,整理出来,包括截图,希望可以帮到大家
通过上述分析可以看出,`java.util.TimeZone`提供了丰富的时区信息,这对于实现跨时区的数据处理和时钟同步等功能至关重要。开发者可以根据实际需求选择合适的时区标识符,并利用Java提供的API进行时区相关的操作,...
在Java中,Base64编码和解码通常通过`java.util.Base64`类进行操作,该类自Java 8开始引入。这个类提供了多种方法,如`encodeBytes()`用于编码字节数组,`decode()`用于解码Base64字符串。然而,描述中提到的是一个...
- **使用PropertyEditor**:在ActionForm或Action类中注册一个自定义的`java.beans.PropertyEditor`,处理日期字符串到Date对象的转换。 - **使用Struts的datetime标签**:如果使用Struts的标签库,可以使用`...
该类的大部分方法已不推荐使用,取而代之的是java.util.Calendar类。不过你仍然可以使用java.util.Date类去表示某个时间。下面是一个如何实例化java.util.Date的例子: java.util.Date date = new java.util.Date...