C# 在空格后删除字符串的其余部分
我得到的字符串如下:C# 在空格后删除字符串的其余部分,c#,C#,我得到的字符串如下: foreach (DataRow dt in dt_power_conv.Rows) { _powerConv.leit_conv.Add(dt["leit_"].ToString(); } 它增加了“ABB第一次”。我需要找“ABB”,其余的都应该去掉。我尝试了以下方法,但没有任何改变: foreach (DataRow dt in dt_power_conv.Rows) { _powerConv.leit_conv.Add(dt["leit_"].To
foreach (DataRow dt in dt_power_conv.Rows) {
_powerConv.leit_conv.Add(dt["leit_"].ToString();
}
它增加了“ABB第一次”。我需要找“ABB”,其余的都应该去掉。我尝试了以下方法,但没有任何改变:
foreach (DataRow dt in dt_power_conv.Rows) {
_powerConv.leit_conv.Add(dt["leit_"].ToString().Substring(0,(dt["leit_"].ToString()).LastIndexOf(" ") + 1));
}
使用
String.IndexOf
和Remove
的单向键:
foreach (DataRow row in dt_power_conv.Rows) {
string leit = row.Field<string>("leit_");
int spaceIndex = leit.IndexOf(' ');
leit = spaceIndex == -1 ? leit : leit.Remove(spaceIndex);
_powerConv.leit_conv.Add(leit);
}
请注意,
String.Split
不带参数也会按制表符或新行字符进行拆分。据我所知,您想从第一个空格之前的字符串中获取所有内容吗?你的问题不是很清楚。但如果是这样,我建议:
string str = "ABB for the first time";
string str2 = str.Split(' ').First();
可能不是最有效的,但易于阅读。尝试使用Remove()
和IndexOf()
:
编辑为不重复IndexOf()函数。以下是您需要的示例:
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
string text = "Hellou1 Hellou2";
int index = text.LastIndexOf(' ');
text = text.Substring(0, index);
Console.WriteLine(text);
}
}
}
我不知道你为什么选择使用
LastIndexOf
,因为它告诉你最后一个索引。您只需稍作更改即可使代码正常工作。使用该方法。它:
报告此实例中第一次出现的指定字符串的从零开始的索引
如果不想在字符串中包含空格,请删除+1
_powerConv.leit_conv.Add(
dt["leit_"].ToString().Substring(0,(dt["leit_"].ToString()).IndexOf(" ")));
您需要获得前3个字符,第一个单词直到空格或任何其他特定条件?您可以提供leit_uuz列的示例数据吗?@EzequielLópez是的,第一个字符之前的所有内容space@EzequielLópez“ABB第一次”但它没有改变任何东西:“这不应该是真的。你应该得到ABB的第一个,虽然我没有投反对票,但我可以想象为什么
LastIndexOf
与OP使用的方法相同。所以这个解决方案只会导致OP发布的问题
foreach (DataRow dt in dt_power_conv.Rows) {
string valueToAdd = dt["leit_"].ToString();
int firstSpacePosition = valueToAdd.IndexOf(" ");
if (firstSpacePosition >= 0)
valueToAdd = valueToAdd.Remove(firstSpacePosition);
_powerConv.leit_conv.Add(valueToAdd);
}
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
string text = "Hellou1 Hellou2";
int index = text.LastIndexOf(' ');
text = text.Substring(0, index);
Console.WriteLine(text);
}
}
}
_powerConv.leit_conv.Add(
dt["leit_"].ToString().Substring(0,(dt["leit_"].ToString()).IndexOf(" ")));