【问题标题】:how to get the following data from a string [duplicate]如何从字符串中获取以下数据[重复]
【发布时间】:2017-05-12 14:00:49
【问题描述】:

我正在使用 C#

我得到一个看起来像这样的字符串:

myString = "User1:John&User2:Bob'More text"

我用过

var parsed = HttpUtility.ParseQueryString(myString);

然后我使用parsed["User1"]parsed["User2"] 来获取数据。

我的问题是parsed["User2"] 不仅返回了名称,还返回了它之后的所有内容。

我想也许然后用字符分隔'
但我不知道该怎么做,因为它在 Visual Studio 中有特定的行为。

我想过这样的事情吗?

private static string seperateStringByChar(string text)
{
    int indexOfChar = text.IndexOf(');
    if (indexOfChar > 0)
    {
        return text.Substring(0, indexOfChar);
    }
    else
    {
        return "";
    }
}

【问题讨论】:

  • 你的尝试有什么问题?你是如何使用那个方法的 return 的?
  • 然后呢?你做的事情吗?
  • 使用if (s.IndexOf("'") > -1) { return text.Substring(0, text.IndexOf("'")); } else { return string.Empty; }
  • regex 可能更有用,因为如果您使用 ParseQueryString,则 User2:Bob*'More text"* 将被视为 User2 值
  • 我的问题是我不能使用'有没有办法以某种方式装饰它以便能够使用它?由于 Visual Studio 使用它在里面写入文本,所以我不能像我那样把它放在一个函数中。

标签: c# string substring


【解决方案1】:

正如 Wiktor 建议的那样,这对我有用。

if (s.IndexOf("'") > -1) { return text.Substring(0, text.IndexOf("'")); } else { return string.Empty; }

【讨论】:

【解决方案2】:

一种干净的方法是拆分除' 的索引之外的字符串,然后获取子字符串。

var splittedText = text.Split('\'');

然后你可以进一步分离它。例如

var splittedText2 = splittedtText[0].Split('\&');
var User1 = splittedText2[0].Split(':')[1];
var User2 = splittedText2[1].Split(':')[1];

让我们总结一下分裂。

var users=myString.Split('\'');
var john = users.Split('&')[0].Split(':')[1];
var bob = users.Split('&')[1].Split(':')[1];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-04
    • 2021-03-06
    • 2020-01-12
    • 2016-06-09
    • 1970-01-01
    • 2021-05-24
    • 2015-03-04
    • 1970-01-01
    相关资源
    最近更新 更多