我正在尝试使用String.Trim修剪字符串:
split[2].Trim(';')
但我得到的结果是:
System;
而不是:
System
我也尝试过使用:
split[2].TrimEnd(';')
但它仍会返回相同的结果。
如果我这样做:
split[2].Trim('S', ';')
我明白了:
ystem;
我真的很困惑为什么会这样。可能是因为分号不是字符串中的最后一个字符吗?
以下是完整代码:
string line = @"
using System;
using System.Windows.Forms;
class HelloWorld
{
static void Main()
{
#if DebugConfig
Console.WriteLine("WE ARE IN THE DEBUG CONFIGURATION");
#endif
Console.WriteLine("Hello, world!");
DialogResult result;
result = MessageBox.Show("Itsyeboi", "Yup", MessageBoxButtons.YesNo);
if (result == DialogResult.Yes)
{
Console.WriteLine("Yes");
Console.ReadLine();
}
else
{
Console.WriteLine("No");
Console.ReadLine();
}
}
}"
string[] split = line.Split(' ', '\n');
while (true)
{
if (split[counter4] == "using")
{
richTextBox1.Text = split[1].Trim(';');
break;
}
else
{
richTextBox1.Text = line;
break;
}
}
我的while循环确实没有意义,但它是“WIP”而不是最终版本。
答案 0 :(得分:4)
替换以下行:
string[] split = line.Split(' ', '\n');
有了这个:
string[] split = line.Replace("\r\n", "\n").Split(' ', '\n');
这将仅使用换行符替换任何回车符,从而消除尾随\r
可能导致问题的可能性。
答案 1 :(得分:0)
如果这个答案有误,我会删除它。由于信息稀少,这只是一个疯狂的猜测。
插入
split[2].Trim()
正确的
split[2].Trim(';')
很可能会成功。
如果没有,但是你知道最后一个字符是;
并且你只想摆脱这个,你也可以只切片。这可能会更有效率,因为您不需要比较任何字符,而如果您使用TrimEnd
,则很可能至少完成两次,如果您使用Trim
则需要三次