检测和修改包含数字的ListBox条目

时间:2018-04-29 15:03:25

标签: c# .net listbox

我的程序有大约25个条目,其中大多数只是字符串。但是,其中一些应该有数字,我不需要输出中的那些数字(输出应该只是字符串)。那么,如何从字符串中“过滤掉”整数?

另外,如果我有整数,字符串和字符,我该怎么做(例如,一个ListBox条目是E#2,应该重命名为E#然后打印作为输出)?

4 个答案:

答案 0 :(得分:1)

您可以使用此LINQ解决方案删除字符串中的所有数字:

string numbers = "Ho5w ar7e y9ou3?";

string noNumbers = new string(numbers.Where(c => !char.IsDigit(c)).ToArray());

noNumbers = "How are you?"

但您也可以使用foreach循环删除字符串中的所有数字:

string numbers = "Ho5w ar7e y9ou3?";

List<char> noNumList = new List<char>();

foreach (var c in numbers)
{
    if (!char.IsDigit(c))
        noNumList.Add(c);            
}

string noNumbers = string.Join("", noNumList);

如果要删除集合中字符串的所有数字:

List<string> myList = new List<string>() { 
"Ho5w ar7e y9ou3?", 
"W9he7re a3re y4ou go6ing?",
"He2ll4o!" 
};

List<char> noNumList = new List<char>();

for (int i = 0; i < myList.Count; i++)
{
    foreach (var c in myList[i])
    {
        if(!char.IsDigit(c))
            noNumList.Add(c);
    }
    myList[i] = string.Join("", noNumList);
    noNumList.Clear();
}

myList 输出:

"How are you?"
"Where are you going?"
"Hello!"

答案 1 :(得分:1)

假设您的条目位于List<string>,您可以遍历列表,然后遍历每个条目的每个字符,然后检查它是否为数字并将其删除。像这样:

List<string> list = new List<string>{ "abc123", "xxx111", "yyy222" };
for (int i = 0; i < list.Count; i++) {
    var no_numbers = "";
    foreach (char c in list[i]) {
        if (!Char.IsDigit(c))
            no_numbers += c;
    }
    list[i] = no_numbers;
}

这只会删除您想要的数字。如果要删除除字母之外的所有其他字符,可以稍微更改一下逻辑并使用{​​{1}}代替Char.IsLetter()

答案 2 :(得分:1)

我不确切知道你的场景是什么,但是给定一个字符串,你可以遍历它的字符,如果它是一个数字,则从输出中丢弃它。

也许这就是你要找的东西:

string entry = "E#2";
char[] output = new char[entry.Length];

for(int i = 0, j =0; i < entry.Length ; i++)
{
    if(!Char.IsDigit(entry[i]))
    {
        output[j] = entry[i];
        j++;
    }
}

Console.WriteLine(output);

我试图给你一个带有一个循环和两个索引变量的简单解决方案,避免可能导致性能不足的字符串连接。

请参阅C# Online Compiler

工作的示例

答案 3 :(得分:0)

如果我没有错,也许这就是你的名单的样子?

<script>
   $('#a').on('click',function(event){
      event.preventDefault();
         swal({
            title: "Are you sure?",
            text: "Once deleted, you will not be able to recover this imaginary file!",
            icon: "warning",
            buttons: true,
            dangerMode: true,
         })
        .then((willDelete) => {
          if (willDelete) {
             # delete row
             # show swal and redirect to your link
          } else {
            swal("Your imaginary file is safe!");
            }
          });
   })
</script>

您的预期输出是:

ABCD123
EFGH456

这是正确的吗?如果是,假设它是ABCD EFGH ,那么您可以使用以下代码:

List<string>

现在您可以轻松组合代码:)