2017-02-06 62 views
0

我是初學者,所以我不知道該怎麼做。在if語句中獲取字符串和值

只要我有這樣

if(textInput.text.ToLower() == "browser stackoverflow") 

代碼在這個if語句我打開默認的瀏覽器,輸入這樣的網站;

Process.Start(new ProcessStartInfo(browserName, "stackoverflow.com")); 

我需要的是獲得任何值來搜索,而不是像這樣寫;

if(textInput.text.ToLower() == "browser" + value) 
Process.Start(new ProcessStartInfo(browserName, value)); 

回答

3

您需要標記輸入。

鑑於輸入,其拆分成塊,基於分隔符(在此情況下的空間):

// tokenize 
String[] rgData = textInput.text.ToLower().Split(' '); 

// validate -- did we get at least two items in the array? 
if (rgData.Length < 2) 
{ 
    // error out. No spaces found. 
    return; 
} 

// test parameter 0 to make sure it's the word 'browser' 
if (string.Compare(rgData[0], "browser") == 0) 
{ 
    // it is! doing something with rgData[1] 
    Process.Start(new ProcessStartInfo(browserName, rgData[1])); 
} 
+0

rgData [0]是低級所以不需要。比較 –

+0

@AlexK。你的意思是不需要使用第三個布爾參數的簽名? –

+0

我的意思是你可以在Split()之前調用'if(rgData [0] ==「browser」)'作爲'ToLower()'@ –

1

聽起來像是你需要解析您的字符串前手(解析,或符號化,是打破字符串成片或以其他方式將其變成一個「已知」價值的過程)。

例如,字符串「1」可以被解析成一個int與1

在你的情況的值,它看起來像你有一個空格分隔字符串,所以我們可以分析到使用String.Split

string[] args = textInput.text.ToLower().Split(' '); 

現在我們可以檢查件。它看起來像你的if語句是真的打算要基於第一個字,所以像:

if (args.Length >= 2) 
{ 
    if (args[0] == "browser") 
    { 
     Process.Start(new ProcessStartInfo(browserName, args[1])); 
    } 
} 

注意長度檢查,因此,如果一個垃圾串像「browserstackoverflow」發送一個異常沒有拋出。

+0

*陣列長度檢查* – Steve

+0

@Steve優秀點 – BradleyDotNET