mFrame
載入中...
搜尋中...
無符合項目
mframe::util::Scanner 類別 參考文件
類別mframe::util::Scanner的繼承圖:
mframe::lang::Object mframe::lang::Interface

公開方法(Public Methods)

 Scanner (const mframe::lang::Memory &buffer)
 Construct a new Scanner object.
 
 Scanner (int bufferSize=128)
 Construct a new Scanner object.
 
virtual ~Scanner (void) override
 Destroy the object.
 
int hasNext (int limit=0)
 取出緩衝區是否擁有字元。
 
bool hasNextChar (char ch)
 取出緩衝區是否擁有指定的字元。
 
bool hasNextBoolean (void)
 取出緩衝區是否滿足一個布林值。
 
bool hasNextInteger (int limit=0)
 取出緩衝區是否滿足一個整數。
 
bool hasNextFloat (int limit=0)
 取出緩衝區是否滿足一個浮點數。
 
int hasNextLine (int limit=0)
 取出緩衝區是否滿足一行。
 
bool nextBoolean (bool &result)
 取出下一個布林值。
 
int nextLine (mframe::lang::Appendable &appendable, int limit=0)
 取出下一行。
 
bool nextInteger (int &result, int limit=0)
 取出下一個整數。
 
bool nextFloat (float &result, int limit=0)
 取出下一個浮點數。
 
bool nextChar (char &result)
 取出下一個字元。
 
int next (mframe::lang::Appendable &appendable, int limit=0)
 取出下一個字幅串。
 
int skip (char pattern, int limit=0)
 跳躍直到發現指定字元。
 
int skipNext (int limit=0)
 跳躍當前字幅串。
 
int skipNextLine (int limit=0)
 跳躍當前行至下一行。
 
int insert (mframe::lang::Readable &readable)
 插入新的資料至緩衝區;
 
- 公開方法(Public Methods) 繼承自 mframe::lang::Object
 Object (void)
 Construct a new Object object.
 
virtual ~Object (void) override
 Destroy the Object object.
 
void * operator new (size_t n)
 
void * operator new (size_t n, void *p)
 
mframe::lang::ObjectgetObject (void) override
 取得類Object
 
void delay (int milliseconds) const
 函數 delay 等待內核滴答中指定的時間段。 對於1的值,系統等待直到下一個計時器滴答發生。 實際時間延遲最多可能比指定時間少一個計時器滴答聲,即在下一個系統滴答聲發生之前立即調用 osDelay(1),線程會立即重新安排。
 
bool equals (Object *object) const
 函數 delay 等待內核滴答中指定的時間段。 對於1的值,系統等待直到下一個計時器滴答發生。 實際時間延遲最多可能比指定時間少一個計時器滴答聲,即在下一個系統滴答聲發生之前立即調用 osDelay(1),線程會立即重新安排。
 
bool equals (Object &object) const
 函數 delay 等待內核滴答中指定的時間段。 對於1的值,系統等待直到下一個計時器滴答發生。 實際時間延遲最多可能比指定時間少一個計時器滴答聲,即在下一個系統滴答聲發生之前立即調用 osDelay(1),線程會立即重新安排。
 
void wait (void) const
 導致當前線程等待,直到另一個線程調用此對象的notify()方法或notifyAll()方法,或指定的時間 已過。
 
bool wait (int timeout) const
 導致當前線程等待,直到另一個線程調用此對象的 notify()方法或 notifyAll()方法,或其他一些線 程中斷當前線程,或一定量的實時時間。
 
bool yield (void) const
 函數yield()將控制權傳遞給處於READY狀態且具有相同優先級的下一個線程。 如果在READY狀態下沒有其他優先級相同的線程,則當前線程繼續執行,不會發生線程切換。
 
int lock (void) const
 核心鎖定,在調用unlock以前將不會進行執行緒切換
 
int unlock (void) const
 核心解鎖。
 
mframe::sys::ThreadcurrentThread (void) const
 取得當前的執行緒
 
virtual int hashcode (void) const
 返回對象的哈希碼值。支持這種方法是為了散列表,如HashMap提供的那樣。
 
- 公開方法(Public Methods) 繼承自 mframe::lang::Interface
virtual ~Interface (void)=default
 Destroy the struct object.
 

建構子與解構子說明文件

◆ Scanner() [1/2]

mframe::util::Scanner::Scanner ( const mframe::lang::Memory & buffer)

Construct a new Scanner object.

參數
readable
buffer

◆ Scanner() [2/2]

mframe::util::Scanner::Scanner ( int bufferSize = 128)

Construct a new Scanner object.

參數
readable
bufferSize

函式成員說明文件

◆ hasNext()

int mframe::util::Scanner::hasNext ( int limit = 0)

取出緩衝區是否擁有字元。

參數
limit搜尋最大上限

[> 0] 指定長度

[<= 0] 整個緩衝區

傳回值
int 返回結果

[> 0] 下個字串長度

[<= 0] 下個字串不存在,可能原因如下:

  • 緩衝區為空
  • 尚未找到切割字符。如'\r', '
    ', '\t', ' ', '\0'。

◆ hasNextBoolean()

bool mframe::util::Scanner::hasNextBoolean ( void )

取出緩衝區是否滿足一個布林值。

傳回值
bool 檢查結果

[true] 滿足。

[false] 不滿足。

◆ hasNextChar()

bool mframe::util::Scanner::hasNextChar ( char ch)

取出緩衝區是否擁有指定的字元。

傳回值
bool 檢查結果

[true] 滿足。

[false] 不滿足。

◆ hasNextFloat()

bool mframe::util::Scanner::hasNextFloat ( int limit = 0)

取出緩衝區是否滿足一個浮點數。

參數
limit查找最大長度上限。
  • [<= 0] auto
  • [> 0] 指定長度。
    傳回值
    bool 檢查結果
  • [true] 滿足。
  • [false] 不滿足。

◆ hasNextInteger()

bool mframe::util::Scanner::hasNextInteger ( int limit = 0)

取出緩衝區是否滿足一個整數。

參數
limit搜尋最大上限
  • [<= 0] auto
  • [> 0] 指定長度。
    傳回值
    bool 檢查結果
  • [true] 滿足。
  • [false] 不滿足。

◆ hasNextLine()

int mframe::util::Scanner::hasNextLine ( int limit = 0)

取出緩衝區是否滿足一行。

參數
limit查找最大長度上限。
  • [<= 0] auto
  • [> 0] 指定長度。
    傳回值
    int 字串長度:
  • [-1] 緩衝區不滿足一行字串。
  • [>= 0] 緩衝區一行字串長度。

◆ insert()

int mframe::util::Scanner::insert ( mframe::lang::Readable & readable)

插入新的資料至緩衝區;

參數
readablesource data
傳回值
int read data length

◆ next()

int mframe::util::Scanner::next ( mframe::lang::Appendable & appendable,
int limit = 0 )

取出下一個字幅串。

Tips.寫入時將會抹除string內原始資料,如不滿足需求將不會改變result內的內容。

參數
result字符串。
limit查找最大長度上限。
  • [<= 0] auto
  • [> 0] 指定長度。
傳回值
int 執行結果

[> 0] 寫入字符串成功。

[<= 0] 寫入字符串失敗,可能的原因為以下:

  • result 可能為唯獨模式。
  • result 內有效空間不足進行寫入。請使用getNextLength()來判斷緩衝區內資料大於result有效 空間。
  • 緩衝區內不滿足一個字符串的條件,因緩衝區尚未出現NextSymbol<'/r','/n','/t',' '>。

◆ nextBoolean()

bool mframe::util::Scanner::nextBoolean ( bool & result)

取出下一個布林值。

參數
result布林。
傳回值
bool 執行結果。

[true] 取出成功,從緩衝區推出一個布林值。

[false] 取出失敗,可能問題如下:

  • 緩衝區為空。
  • 資料格式不為布林。

◆ nextChar()

bool mframe::util::Scanner::nextChar ( char & result)

取出下一個字元。

參數
result字元。
傳回值
  • [true] 取出成功,從緩存區推出一個字元。
  • [false] 取出失敗,緩衝區為空。

◆ nextFloat()

bool mframe::util::Scanner::nextFloat ( float & result,
int limit = 0 )

取出下一個浮點數。

參數
result浮點數結果。
limit查找最大長度上限。
  • [<= 0] auto
  • [> 0] 指定長度。
    傳回值
    bool 執行結果
    [true] 取出成功,從緩存區推出一個浮點數。

[false] 取出失敗,可能原因如下:

  • 緩衝區為空
  • 緩衝區內文字不滿足浮點數規則。

◆ nextInteger()

bool mframe::util::Scanner::nextInteger ( int & result,
int limit = 0 )

取出下一個整數。

參數
result整數。
limit查找最大長度上限。
  • [<= 0] auto
  • [> 0] 指定長度。
    傳回值
    bool 執行結果
    [true] 取出成功,從緩存區推出一個整數。

[false] 取出失敗,可能問題如下:

  • 緩衝區為空。
  • 資料格式不為整數。

◆ nextLine()

int mframe::util::Scanner::nextLine ( mframe::lang::Appendable & appendable,
int limit = 0 )

取出下一行。

Tips.寫入時將會抹除string內原始資料,如不滿足需求將不會改變result內的內容。

參數
appendable輸入來源 。
limit查找最大長度上限。
  • [<= 0] auto
  • [> 0] 指定長度。
    傳回值
    複製的字符串長度:
    [-1] 緩衝區並未滿足一個字幅串

[> 0] 複製到輸入來源的字符數量

◆ skip()

int mframe::util::Scanner::skip ( char pattern,
int limit = 0 )

跳躍直到發現指定字元。

參數
pattern字元
  • [0x00] 忽略判斷,直接跳躍Limit數量。
  • [Other] 需判斷到指定字符。
參數
limit最大搜尋限制
  • [> 0 ] 指定搜尋限制。
  • [<= 0] 不指定限制。
傳回值
int 跳躍的字元數量。
  • [> 0] 跳躍的字元數量。
    • [<= 0] 緩衝區內並未找到pattern。

◆ skipNext()

int mframe::util::Scanner::skipNext ( int limit = 0)

跳躍當前字幅串。

參數
limit最大搜尋限制

[> 0 ] 指定搜尋限制。

[<= 0] 不指定限制。

傳回值
int 跳躍的字元數量。

[>= 0] 跳躍的字幅串字元數量。

[< 0] 緩衝區內不滿足一個字符串的條件,因緩衝區尚未出現NextSymbol<'/r','/n','/t',' '>。

◆ skipNextLine()

int mframe::util::Scanner::skipNextLine ( int limit = 0)

跳躍當前行至下一行。

參數
limit最大搜尋限制

[> 0 ] 指定搜尋限制。

[<= 0] 不指定限制。

傳回值
int 跳躍的字元數量:
  • [-1 ] 緩衝區內不滿足一個字符串的條件,因緩衝區尚未出現NextLineSymbol<CR, LF, NUL>。
  • [> 0] 跳躍的字幅串字元數量。

此類別(class) 文件是由下列檔案中產生: