程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> linq-link如何實現構造狀態機,掃描文本,根據狀態決定是否捕獲,遇到終止然後切分

linq-link如何實現構造狀態機,掃描文本,根據狀態決定是否捕獲,遇到終止然後切分

編輯:編程綜合問答
link如何實現構造狀態機,掃描文本,根據狀態決定是否捕獲,遇到終止然後切分

link如何實現構造狀態機,掃描文本,根據狀態決定是否捕獲,遇到終止然後切分

最佳回答:


 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        enum State
        { 
            normal,
            inquote,
        }

        static void Main(string[] args)
        {
            string s = "1,2,3,\"4,5\",6,\"7\"\"8\"";
            List<string> result = new List<string>();
            State state = State.normal;
            string curr = "";
            for (int i = 0; i < s.Length; i++)
            {
                if (s[i] == '"')
                {
                    if (state == State.normal)
                    {
                        state = State.inquote;
                    }
                    else
                    {
                        if (i == s.Length - 1 || s[i + 1] != '"')
                            state = State.normal;
                    }
                }
                if (s[i] == ',' && state == State.normal)
                {
                    result.Add(curr);
                    curr = "";
                }
                else
                {
                    curr += s[i];
                }
            }
            result.Add(curr);
            foreach (string x in result)
            {
                Console.WriteLine(x.Trim('"'));
            }
        }
    }
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved