none
如何可以split 一些字串?? RRS feed

  • 問題

  • 我有1個string

    string 內是一些圖片網子

    我想把string 變成array

    用jpg,png,gif等字眼來分開他

    但split 只可入1組字串

    split 了jpg

    就無法分開png 和gif

                foreach (string line in textBox1.Lines)
                {
                    temp += line;
                }
    
          
                string[] sArray = Regex.Split(temp, "jpg", RegexOptions.IgnoreCase);
    
                foreach (string i in sArray) MessageBox.Show(i.ToString());

    2012年5月13日 下午 08:37

解答

  • 您好,

    String.Split 方法 (String[], StringSplitOptions) 可以用多組分隔字串哦!

    請參考以下的範例,會回傳字串array,a, b, c哦!

    string temp = "a.jpgb.gifc.png";
    string[] stringSeparators = new string[] { ".jpg", ".gif", ".png" };
    string[] sArray = temp.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries );


    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    • 已標示為解答 aesopt 2012年5月14日 上午 02:31
    2012年5月14日 上午 01:40

所有回覆

  • 或許你可以試試看改用逗點隔開每個圖片網址,再利用String.Split方法來拆字串。

    string temp = string.Empty;
    foreach (string line in textBox1.Lines)
    {
    	//temp += line;
    	temp += string.IsNullOrEmpty(temp) ? line : "," + line;
    }
    //string[] sArray = Regex.Split(temp, "jpg", RegexOptions.IgnoreCase);
    string[] sArray = temp.Split(',');
    foreach (string i in sArray) MessageBox.Show(i.ToString());


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/

    2012年5月13日 下午 10:47
  • 改用 String.Split 

    string[] sArray = temp.Split(new string[]{".jpg" , ".png" , ".gif"}, StringSplitOptions.RemoveEmptyEntries);


    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    2012年5月14日 上午 01:35
  • 您好,

    String.Split 方法 (String[], StringSplitOptions) 可以用多組分隔字串哦!

    請參考以下的範例,會回傳字串array,a, b, c哦!

    string temp = "a.jpgb.gifc.png";
    string[] stringSeparators = new string[] { ".jpg", ".gif", ".png" };
    string[] sArray = temp.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries );


    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    • 已標示為解答 aesopt 2012年5月14日 上午 02:31
    2012年5月14日 上午 01:40
  • 問題解決了 感謝各位幫忙

    請問一下有沒有簡單方法能編寫html檔??

    我現在是這樣寫的

           string appPath = Path.GetDirectoryName(Application.ExecutablePath);
            string img = "<img src=\"";
             string img2="\"  />";
      webBrowser1.Navigate(appPath + @"/text.html");
              //  MessageBox.Show(appPath);
              
    
                
                string lines = textBox1.Text;
    
                // Write the string to a file.
                System.IO.StreamWriter file = new System.IO.StreamWriter(appPath + @"/text.html");
                file.WriteLine(img+lines+img2);
    
                file.Close();

    2012年5月14日 上午 02:34
  • 我發現Split了 會不見了副檔名.png.jpg.gif

    有沒有方法保留Split 的字串

    2012年5月14日 上午 02:40
  • 為什麼不在迴圈裡面直接分好,例如使用泛型Dictionary。

    組字串再拆字串不是更麻煩嗎?


    2012年5月14日 上午 03:14
  • 您好,

    String.Split是不包含分隔字的哦!

    如果使用Regex,然後再組成字串,不知是否符合您的需求呢?

    string temp = "a.jpgb.gifc.png";
    string[] sArray = Regex.Split(temp, @"(.jpg|.gif|.png)", RegexOptions.IgnoreCase);
    StringBuilder sbResult = new StringBuilder();
    string temp1 = string.Empty;
    for (int i = 0; i < sArray.Length; i++)
    {
    	if ((i % 2 == 0) && (temp1.Length > 0))
    	{
    		sbResult.Append(temp1);
    		sbResult.Append(Environment.NewLine);
    		temp1 = string.Empty;
    	}
    	temp1 += sArray[i];
    }
    MessageBox.Show(sbResult.ToString());


    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    2012年5月14日 上午 03:21