我试图让人们把帐号放到一个文本框中,我试图让他们以几种不同的方式输入它们
IE:
1234 5678 9101 1213
要么:
1234,5678,9101,1112
但由于某种原因,我的Replace函数不想尊重Environment.Newline或"\ r \n"
public string[] getAccounts()
{
string textLines;
string[] accounts;
textLines = accountsTextBox.Text;
textLines.Replace(Environment.NewLine, ",");
accounts = textLines.Split(Environment.NewLine.ToArray(), StringSplitOptions.RemoveEmptyEntries);
return accounts;
}
Run Code Online (Sandbox Code Playgroud)
我抓住一切从文本框中转换成字符串,然后想一切强行进入一个逗号分隔的列表,最后用逗号分割该列表.
我的替换中缺少什么?
这是因为String.Replace不会修改原始字符串,而是返回一个新字符串.你应该更新这一行
textLines.Replace(Environment.NewLine, ",");
Run Code Online (Sandbox Code Playgroud)
如下:
textLines = textLines.Replace(Environment.NewLine, ",");
Run Code Online (Sandbox Code Playgroud)
此外,您还有另一个问题String.Split():
它试图分裂Environment.NewLine.ToArray().假设你正确地替换了它,它应该已经用逗号替换你的换行符,所以字符串中不会留下换行符分隔符.
我的最终建议如下:
// At the class level
static char[] delimiters = new char[]{','};
// In your getAccounts() function
textLines = accountsTextBox.Text.Replace(Environment.NewLine, ",");
accounts = textLines.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
Run Code Online (Sandbox Code Playgroud)
或者,您可以String.Replace()完全放弃调用,只需更新分隔符数组,如下所示:
// At the class level
static char[] delimiters = ("\r\n,").ToArray(); // treat '\r' '\n' and ',' as delimiters
// In your getAccounts() function
accounts = accountsTextBox.Text.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2558 次 |
| 最近记录: |