如圖
我的temp是一個string,我想用空格分開其內部單字程式碼如下
temp.Split(' ', 6, StringSplitOptions.RemoveEmptyEntries);
明明第二個參數他說明是寫要int,結果錯誤一直說int無法轉為char,
第三個參數也是照它內建設的,這函數到底要怎麼用才會對呢?
簡單說,你第一個參數錯了,是 char[] 不是 char。
上面的大大們都填char[] 當然對。
那請問大大為何
temp.Split(' ');
這樣也行,裡面也是char而不是char[]@_@
你先釐清 temp.Split(' ') API 吧
https://docs.microsoft.com/zh-tw/dotnet/api/system.string.split?view=netframework-4.8
我確認了,是正常的字串分離
Split(' ');所傳遞的參數是params char[]
params關鍵字說明
https://docs.microsoft.com/zh-tw/dotnet/csharp/language-reference/keywords/params
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
string temp = "Hello World Test Split";
temp.Split(' ', 6, StringSplitOptions.RemoveEmptyEntries);
}
}
}
拜託了QQ 一直卡這個
Count參數放6當然不能切呀~XDDD
您給的String只能切4份而已~
您可以用
temp.Split(' ');
就好
然後記得把它存進string的Array裡才能使用,例如
string[] tempArray = temp.Split(' ');
就算我把Count改成1,也是會報錯,我會想用這樣的原因是不希望他回傳空陣列,所以需要指派第三個參數。
ps:第二參數不是只單一字串內最多幾個字嗎?還是我理解錯了。
原來切超過也可以哦!?
又學到了一課~XDDD
根據我測的結果
第二個參數應該是回傳的陣列長度
我的還是無法動
除非先把空格放到char[]裡面
char[] s = new char[] { ' ' };
string[] tempSplited = temp.Split(s, 2, StringSplitOptions.RemoveEmptyEntries);
去年鐵人賽對於切割字串有做分享,希望能幫助到你
https://ithelp.ithome.com.tw/articles/10202758
[System.Runtime.InteropServices.ComVisible(false)]
public string[] Split (char[] separator, int count, StringSplitOptions options);
string s1 = ",ONE,,TWO,,,THREE,,";
char[] charSeparators = new char[] {','};
result = s1.Split(charSeparators, 2, StringSplitOptions.None);
Show(result);
選我正解
string[] array = temp.Split(new char[] { ' ' }, 6, StringSplitOptions.RemoveEmptyEntries);
Split函式總共有6種傳入參數的方式,
其中沒有包含你原本的方式.