2017-01-07 151 views
-1

我有一個包含類似下面的字符串值一個變量:驗證變量包含字符串值

var stringWithSpecialChar = "/Home%"; 

有時這種變量不包含像下面的任何值:

var stringWithSpecialChar = "/%"; 

我要在這裏檢查是否這個變量是否包含字符串值。 每次字符串值都在變化,所以不確定我會再次獲得相同的值。

+0

你需要捕獲「/」和「%」之間有什麼嗎? –

+0

您對*有效值*的定義是什麼? –

回答

1

我不明白什麼是你的問題的有效價值,所以:
下面的代碼使用,如果一個有效的價值,是一些字母或數字的一些的值:

using System.Linq; 

if (str.Any(char.IsLetterOrDigit) 
{ 
    //Some codes 
} 

不過我建議你;用於檢查有效或無效的字符串使用Regex這樣的:

using System.Text.RegularExpressions; 

var regex = new Regex(@"[A-Za-z]"); // You have many options here 
if (regex.IsMatch(str)) 
{ 
    //Some codes 
} 
+0

沙,你的建議爲我工作。我贊成你的答案。正則表達式對我來說很好。 – Vikash

+0

不客氣;)。 –

1

你可以這樣做,對你的變量做一個foreach循環來檢查它是否會看到一個字符串或字母。檢查

var stringWithSpecialChar = "/Home%"; 
bool blStringInput; 
blStringInput = IsThisString(stringWithSpecialChar); 

方法是否會看到一個字符串值:

public static bool IsThisString(string strInput) 
    { 
     foreach (char c in strInput) 
     { 
      if (char.IsLetter(c)) 
       return true; 
     } 

     return false; 
    } 
+0

那麼,如果它檢測到字符串中的非字母字符,將返回false :) –

+0

誤讀您的代碼! - 使用LinQ:'blStringInput = str.Any(char.IsLetter);';) –

+0

這也會做到這一點;)@ shA.t –

0

下面是一個簡單的實現你的問題。我認爲在/%之間的任何內容都是一個字符串[它可能包含數字,字母或特殊字符]。另外,我在函數中包含了一個檢查字符串是否有效的方法,通過檢查它是否分別以/%開始和結束。

using System; 
class MainClass { 
    public static void Main (string[] args) { 
    var stringWithSpecialChar = "/Home%"; 
    bool ans = checkIfStringIsPresent(stringWithSpecialChar); 
    Console.WriteLine(ans); 
    stringWithSpecialChar = "/%"; 
    ans = checkIfStringIsPresent(stringWithSpecialChar); 
    Console.WriteLine(ans); 
    stringWithSpecialChar = "/hi%"; 
    ans = checkIfStringIsPresent(stringWithSpecialChar); 
    Console.WriteLine(ans); 
    stringWithSpecialChar = "/12#%"; 
    ans = checkIfStringIsPresent(stringWithSpecialChar); 
    Console.WriteLine(ans); 
    } 
    public static bool checkIfStringIsPresent(string s){ 
    var len = s.Length; 
    if(s[0]!='/' || s[len-1]!='%') 
     return false; // if string doesn't start and and with correct symbols, then return false 
    var i = 0; 
    for(i=1;i<len-1;i++){ 
     return true; // something is present in between/and %, so return true 
    } 
    return false; // else return false 
    } 
} 

輸出:

True 
False 
True 
True 
0

如果您知道特殊字符和知道他們在開始時和string末,可以使用Trim()

var stringWithSpecialChar = "/Home%"; 
var value = stringWithSpecialChar.Trim('/', '%'); 

if(!string.IsNullOrEmpty(value)) 
    // Use value... 

一根據您的需要也可以使用string.IsNullOrWhiteSpace(value)

相關問題