QuotationAwareTokenizer
public
class
QuotationAwareTokenizer
extends Object
java.lang.Object | |
↳ | com.android.tradefed.util.QuotationAwareTokenizer |
摘要
公共构造函数 | |
---|---|
QuotationAwareTokenizer()
|
公共方法 | |
---|---|
static
String
|
combineTokens(String... tokens)
执行 |
static
String[]
|
tokenizeLine(String line, String delim)
|
static
String[]
|
tokenizeLine(String line)
对字符串进行词法单元化处理,按空格进行拆分。 |
static
String[]
|
tokenizeLine(String line, boolean logging)
对字符串进行标记化,按空格进行拆分。 |
static
String[]
|
tokenizeLine(String line, String delim, boolean logging)
将字符串拆解为令牌,并按指定的分隔符进行拆分。 |
公共构造函数
QuotationAwareTokenizer
public QuotationAwareTokenizer ()
公共方法
combineTokens
public static String combineTokens (String... tokens)
执行 tokenizeLine(String)
的反向操作。
给定一个词法单元数组,将其合并为一行。
返回 | |
---|---|
String |
由所有令牌创建的 String 。 |
tokenizeLine
public static String[] tokenizeLine (String line, String delim)
参数 | |
---|---|
line |
String |
delim |
String |
返回 | |
---|---|
String[] |
tokenizeLine
public static String[] tokenizeLine (String line)
对字符串进行词法单元化处理,按空格进行拆分。不会在连续的未引号双引号之间拆分。
另请参阅 tokenizeLine(String, String)
参数 | |
---|---|
line |
String |
返回 | |
---|---|
String[] |
tokenizeLine
public static String[] tokenizeLine (String line, boolean logging)
对字符串进行词法单元化处理,按空格进行拆分。不会在连续的未引号双引号之间拆分。
另请参阅 tokenizeLine(String, String)
参数 | |
---|---|
line |
String |
logging |
boolean |
返回 | |
---|---|
String[] |
tokenizeLine
public static String[] tokenizeLine (String line, String delim, boolean logging)
对字符串进行标记化,按指定分隔符进行拆分。不能在连续的不带英文双引号之间拆分。
分词器的运作方式:
- 将字符串拆分为“字符”,其中每个“字符”要么是转义字符(例如 \",即“\\\""),要么是单个真实字符(例如 f,即“f”)。
- 对于每个“字符”
- 如果是空格,则完成令牌,除非我们正在引用
- 如果是引号,请翻转“我们正在被引用”位
- 否则,请将其添加到正在构建的令牌中
- 在 EOL 时,我们通常尚未向 (tokens)
ERROR(/ArrayList)
添加最终令牌- 如果最后一个“字符”是转义字符,则抛出异常;这不合规
- 如果我们正在引用,则抛出异常;这不合规
- 否则,将最终令牌添加到 (tokens)
- 返回 (tokens) 的 String[] 版本
参数 | |
---|---|
line |
String :要进行词法单元化的 String |
delim |
String :作为拆分依据的分隔符 |
logging |
boolean :是否记录操作 |
返回 | |
---|---|
String[] |
字符串的令牌化版本 |
抛出 | |
---|---|
IllegalArgumentException |
如果行无法解析 |