1. 程式人生 > >【C#】利用正則表示式判斷輸入是否為純數字、容器類

【C#】利用正則表示式判斷輸入是否為純數字、容器類

容器類、正則表示式在幾乎所有程式語言都存在的東西。很常用也很使用。下面用如下的一個控制檯小程式說明C#的正則表示式與容器類的應用。

開始直接輸出在C#定義好的資料字典Dictionary,這就是Java與Python的HashMap

之後定義一個存int的List,讓使用者無限輸入這個List的元素,輸入到#則停止輸入,在輸入的過程中遇到不是純輸入,則拒絕這個輸入。

遍歷這個List輸出,之後利用C#的另一個容器HashSet為這個List去重。


這個程式的程式碼如下,其實以上所有的東西都在以前的文章說過。這主要是將這種思想寫成C#語言而已。

關於正則表示式可以參考:《【JavaScript】利用正則表示式檢查輸入框輸入的是否為網址》(

點選開啟連結

關於利用HashSet為List去重:《【Java】為ArrayList去重》(點選開啟連結

using System;
using System.Collections.Generic;//用到了容器類
using System.Text.RegularExpressions;//用到了正則表示式

class Collections
{
    //C#容器Dictionary的基本使用
    public static void dictionaryTest() {
        Dictionary<string, int> dict = new Dictionary<string, int>();
        dict.Add("K1", 123);
        dict["K2"] = 456;
        dict.Add("K3", 789);
        Console.WriteLine("資料字典dict中的Key-value對為:");
        foreach (KeyValuePair<string, int> k in dict)
        {
            Console.WriteLine("{0}-{1}; ", k.Key, k.Value); //K1-123; K2-456; K3-789;
        }    
    }

    //C#容器List與HashSet的基本使用
    public static void listTest() {

        List<int> list = new List<int>();

        Console.WriteLine("輸入#,結束輸入!");
        Regex regex = new Regex("^[0-9]*$");
        String input_string = "";
        while (true)
        {
            Console.Write("請輸入陣列的數字:");
            input_string = Console.ReadLine();
            if (input_string.Trim().CompareTo("#") == 0)
            {
                break;
            }
            else
            {
                if (regex.IsMatch(input_string))//利用正則表示式判斷是否輸入的是數字
                {
                    list.Add(int.Parse(input_string));
                }
                else
                {
                    Console.WriteLine("輸入的不是數字!請重新輸入!");
                }
            }
        }
        Console.WriteLine("輸入的List為:");
        for (int i = 0; i < list.Count; i++)
        {
            Console.Write(list[i] + " ");
        }
        Console.WriteLine();

        list = new List<int>(new HashSet<int>(list));//利用集合為list去重

        Console.WriteLine("List利用Set去重後為:");        
        for (int i = 0; i < list.Count; i++)
        {
            Console.Write(list[i] + " ");
        }
        Console.WriteLine(); ;
    
    }

    public static void Main(String[] args)
    {
        dictionaryTest();
        listTest();
        Console.ReadKey();//等待使用者按回車才結束程式
    }
}