validate变量包含字符串值

时间:2017-01-07 04:03:52

标签: c#

我有一个包含字符串值的变量,如下所示:

var stringWithSpecialChar = "/Home%";

有时此变量不包含任何值,如下所示:

var stringWithSpecialChar = "/%";

我必须在此检查此变量是否包含字符串值。 每次字符串值都在变化,所以我不确定我会再次获得相同的值。

4 个答案:

答案 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;
    }

答案 1 :(得分: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
}

答案 2 :(得分: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

答案 3 :(得分:0)

如果您知道特殊字符并知道它们位于string的开头和结尾,则可以使用Trim()

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

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

根据您的需要,也可以在条件中使用string.IsNullOrWhiteSpace(value)