QuotationAwareTokenizer

public class QuotationAwareTokenizer
extends Object

java.lang.Object
   ↳ com.android.tradefed.util.QuotationAwareTokenizer


摘要

公用建構函式

QuotationAwareTokenizer()

公用方法

static String combineTokens(String... tokens)

執行 tokenizeLine(String) 的反向作業。

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)

將字串權杖化,並依指定的分隔符號分割。不會在連續的未加引號雙引號之間分割。

權杖化工具的運作方式:

  1. 將字串分割為「字元」,其中每個「字元」都是逸出字元 (例如 \",也就是「\\\"」) 或單一實體字元 (例如 f,也就是「f」)。
  2. 針對每個「角色」
    1. 如果是空格,請完成權杖,除非我們引用
    2. 如果是引號,請翻轉「我們正在被引用」位元
    3. 否則,請將其新增至正在建構的權杖
  3. 在 EOL 時,我們通常不會將最終權杖新增至 (tokens) ArrayList
    1. 如果最後一個「字元」是逸出字元,請擲回例外狀況;這不是有效字元
    2. If we're in the middle of a quotation, throw an exception; that's not valid
    3. 否則,請將最終權杖加至 (tokens)
  4. 傳回 (權杖) 的 String[] 版本

參數
line String:要權杖化的 String

delim String:用於分割的分隔符號

logging boolean:是否記錄作業

傳回
String[] 字串的權杖化版本

擲回
IllegalArgumentException 如果無法剖析該行