字符串中的特定单词后仅取9个字符

时间:2018-12-15 22:56:44

标签: c#

我正在从应用程序中接收一串数字,我需要获取它们 但我不认识他们 所以在字符串中我有UID: 所以在字符串中搜索它,然后我需要从字符串中的“ UID:”一词后的9个字符中提取

尝试了一些但措辞不好

我只是删除想要的内容,而不是从字符串中提取

UID: 994zxfa6q

我知道UID之后需要的字符串:总是有9个字符 我需要得到的输出

示例:

async function async_DOM_manipulations(){ await DOM_manipulation_1() ; await DOM_manipulation_2() ; await DOM_manipulation_3() ; }

我不知道它是什么,但我知道它只有9个字符。

5 个答案:

答案 0 :(得分:1)

您绝对有正确的想法。差不多了。

string id = txt.Substring(txt.LastIndexOf("UID: ") + 5, 9);

答案 1 :(得分:1)

我不希望常量和常量的长度彼此硬编码。您需要使起始索引为搜索字符串的索引加上搜索字符串的大小,然后长度应为id的大小。

var uid = "UID: ";
string id = txt.Substring(txt.IndexOf(uid) + uid.Length, 9);

答案 2 :(得分:0)

string GetUID(string input)
{
    const int uidLength = 9;
    const string uidMarker = "UID: ";
    var markerIndex = input.IndexOf(uidMarker);
    if(markerIndex==-1 || markerIndex + uidMarker.Length + uidLength > input.Length)
    {
        throw new ArgumentException("Input does not contain UID", nameof(input));
    }
    return input.Substring(markerIndex + uidMarker.Length, uidLength);
}

如果我了解您想要的内容,则可以使用此代码(或类似的代码)。抱歉,可能是因为我现在离PC还很远,所以弄错了。此代码假定输入字符串中只有一个"UID:"子字符串。 String.IndexOfString.Substring的文档也很好。

答案 3 :(得分:-1)

您的代码几乎是正确的,但是您必须记住string.SubString的第一个参数是一个索引。因此,您需要更改:

router.get('/data', function(req, res, next) {
    var IdArr = req.user.connections;
    var retArr = [];
    for (let i = 0; i < IdArr.length; i++) {
        User.getUserById(IdArr[i], function(err, patient) {
            retArr[i] = {name:patient.name, pic:patient.profileImage};
            if (Object.keys(retArr).length === IdArr.length) res.json(retArr);
        });
    }
});

收件人:

string id = txt.Substring(0, txt.LastIndexOf("UID:") + 9);

答案 4 :(得分:-2)

    String txt = "UID: 994zxfa6q";
    int pFrom = txt.IndexOf("UID:") + 4;
    Console.WriteLine("pFrom = " + pFrom.ToString());
    int pTo = txt.LastIndexOf("UID:") + 14;
    Console.WriteLine("pTo= " + pTo.ToString());
    String result = txt.Substring(pFrom, pTo - pFrom);
    Console.WriteLine("result " + result);