我使用的是C#,并具有以下字符串文本值:
get directions from Sydney to Melbourne这是我目前想要得到的代码,它显示在“从”到“到”之间。
String fromDestination = InputTextbox.Text;
if (fromDestination.Contains("from"))
{
fromDestination = fromDestination.Substring(fromDestination.IndexOf("from") + 5, fromDestination.IndexOf("to") - 3);
}该代码从返回的值中删除单词" from“,但我不知道如何使用" to”。目前的产出是:悉尼到梅尔布。
谢谢你的帮助。
发布于 2013-12-10 22:26:05
这是另一条可能的路线。
你可以通过“从”和“到”分开。每个部分都是为您创建的:
var str = "get directions from Sydney to Melbourne";
var parts = str.Split(new string[] { "from", "to" }, StringSplitOptions.None); // split it up
var from = parts[1]; // index 1 is from
var to = parts[2]; // index 2 is to
Console.WriteLine(from); // "Sydney"
Console.WriteLine(to); // "Melbourne"发布于 2013-12-10 22:30:42
传递给子字符串方法的第二个参数是从实例字符串中提取的字符数,而不是另一个位置
String fromDestination = InputTextbox.Text;
int pos = fromDestination.IndexOf(" from ");
if(pos >= 0)
{
int pos2 = fromDestination.IndexOf(" to ", pos);
if(pos2 > -1)
{
int len = pos2 - (pos + 6);
fromDestination = fromDestination.Substring(pos+6, len);
}
}注意,我已经更改了搜索字符串,在from和to之前和之后添加了一个空格。这是一种预防措施,以避免在城市名称中包含“to”作为其名称的一部分时,或者如果在实际启动from之前文本中嵌入了另一个from,则避免出现误报。
发布于 2013-12-10 22:28:21
如果字符串总是相同的,我建议使用一个简单的字符串拆分。
string fromDestination = InputTextbox.Text.Split(' ')[3];
https://stackoverflow.com/questions/20506592
复制相似问题