`
kavy
  • 浏览: 890661 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java.util——使用StringTokenizer类分析字符串

 
阅读更多

有时我们需要分析字符串并将字符串分解成可被独立使用的单词,这些单词叫做语言符号。例如,对于字符串“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互转及字符串转换为日期时间格式.docx

    ### 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互转及字符串转换为日期时间格式[文].pdf

    Java.util.Date与java.sql.Date的互转及字符串转换为日期时间格式 java.util.Date和java.sql.Date是Java中两个常用的日期时间类,分别属于不同的包。java.util.Date是Java标准库中的日期时间类,而java.sql.Date是...

    java.util.Date与java.sql.Date相互转换

    Java标准库提供了两个重要的日期类:`java.util.Date` 和 `java.sql.Date`。虽然它们名字相似,但在实际应用中有着不同的用途和特性。`java.util.Date` 主要用于表示具体的瞬间,而 `java.sql.Date` 专门用于SQL语句...

    用java.util.zip包现数据压缩与解压

    ### 使用 Java.util.zip 包实现数据压缩与解压 在计算机科学领域,数据压缩技术是一项重要的功能,它能够帮助减少存储空间的需求以及提高网络传输效率。本文将通过一系列的示例来详细介绍如何利用 Java 中的 `java....

    java并发工具包 java.util.concurrent中文版用户指南pdf

    1. java.util.concurrent - Java 并发工具包 2. 阻塞队列 BlockingQueue 3. 数组阻塞队列 ArrayBlockingQueue 4. 延迟队列 DelayQueue 5. 链阻塞队列 LinkedBlockingQueue 6. 具有优先级的阻塞队列 ...

    Exception in thread “main“ java.util.InputMismatchException.pdf

    在Java编程语言中,`java.util.InputMismatchException`是一个常见的运行时异常,它通常发生在尝试从数据源(如控制台、文件或数据库)读取数据时,遇到的数据类型与预期的不匹配。在这个特定的场景中,问题出在主线...

    java.util.Date到Json日期

    本篇文章将详细介绍如何将`java.util.Date`对象转换为符合特定格式的JSON字符串,从而实现更加标准化的数据交换。 #### 一、问题背景与目标 在Java中,`java.util.Date`类用于表示具体的时间点,它包含了毫秒级别...

    java.sql.与java.util

    例如,对于格式为"yyyy-mm-dd"的字符串,可以使用`SimpleDateFormat`的`parse()`方法将其转换为`java.util.Date`,然后再转换为`java.sql.Date`。如果需要插入数据库,还可以利用数据库特定的函数,如Oracle的`TO_...

    java.sql.date与java.util.date.pdf

    Java编程语言提供了多种日期时间类来处理不同的场景需求,其中`java.util.Date`和`java.sql.Date`是两个常见的日期类型,它们之间存在一定的差异和转换关系。 `java.util.Date`是Java标准库中的基础日期类,它表示...

    java.util包

    Java提供日期(Data)类、日历(Calendar)类,随机数(Random)类,堆栈(Stack)、向量(Vector) 、位集合(Bitset)以及哈希表(Hashtable)等类来表示相应的数据结构

    无法解析类型 java.util.Map$Entry。从必需的 .class 文件间接引用了它

    这是我在编写struts2中遇到的问题,整理出来,包括截图,希望可以帮到大家

    java.util.TimeZone 的世界时区列表

    通过上述分析可以看出,`java.util.TimeZone`提供了丰富的时区信息,这对于实现跨时区的数据处理和时钟同步等功能至关重要。开发者可以根据实际需求选择合适的时区标识符,并利用Java提供的API进行时区相关的操作,...

    java base64源码+jar包

    在Java中,Base64编码和解码通常通过`java.util.Base64`类进行操作,该类自Java 8开始引入。这个类提供了多种方法,如`encodeBytes()`用于编码字节数组,`decode()`用于解码Base64字符串。然而,描述中提到的是一个...

    struts的form不能初始化java.util.Date类型

    - **使用PropertyEditor**:在ActionForm或Action类中注册一个自定义的`java.beans.PropertyEditor`,处理日期字符串到Date对象的转换。 - **使用Struts的datetime标签**:如果使用Struts的标签库,可以使用`...

    Java Date Time教程-java.util.Date

    该类的大部分方法已不推荐使用,取而代之的是java.util.Calendar类。不过你仍然可以使用java.util.Date类去表示某个时间。下面是一个如何实例化java.util.Date的例子:  java.util.Date date = new java.util.Date...

Global site tag (gtag.js) - Google Analytics