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 + -
显示快捷键?