parsecontent.java.obsoleted

来自「《移动Agent技术》一书的所有章节源代码。」· OBSOLETED 代码 · 共 76 行

OBSOLETED
76
字号
/* Template.java * $Id: ParseContent.java,v 1.2 1997/03/15 10:10:02 ht Exp ht $ $Name:  $ * COPYRIGHT NOTICE goes here */package kqmlsample.travel;import java.util.*;/** * Class ParseContent parses content of performatives. * * @version     $Revision: 1.2 $ $Date: 1997/03/15 10:10:02 $ * @author      Hajime Tsuchitani */public class ParseContent {  private static final String rcsid = "$Id: ParseContent.java,v 1.2 1997/03/15 10:10:02 ht Exp ht $ $Name:  $";  public static Vector parse(String s) {    StringTokenizer parser = new StringTokenizer(s, " \t\n\r()\"",true);    String token, newDelimiter = null;    boolean lookForMatchingQuote =false;    Vector tokens = new Vector();    try {      while (parser.hasMoreTokens())  {	if (newDelimiter != null) {	  token = parser.nextToken(newDelimiter);	  newDelimiter = null;	} else {	  token = parser.nextToken();	}	if (token.equals(" ") || token.equals("(") || token.equals(")"))	  continue;	if (token.equals("\"")) {	  if (lookForMatchingQuote) {	    newDelimiter = " \t\n\r()\"";	    lookForMatchingQuote = false;	  } else {	    newDelimiter = "\"";	    lookForMatchingQuote = true;	  }	} else {	  // System.out.println(token);	  if ((!token.equals(" "))  && (!token.equals("\n")) && 	      (!token.equals("\t")) && (!token.equals("\r")) && 	      (!token.equals("("))  && (!token.equals(")"))  && 	      (!token.equals("\""))) {	    tokens.addElement(token);	  }	}      }    } catch (NoSuchElementException e) {      e.printStackTrace();    }    return tokens;  }  public static void main(String[] args) {    String s = "(ask-one :name taro :content (:errmsg \"baka mono\"))";    System.out.println(s);    Vector result = ParseContent.parse(s);    int size;    System.out.println("size: " + (size = result.size()));    for (int i = 0; i < size; i++) {      System.out.println(i + " : " + result.elementAt(i));    }  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?