我正在从应用程序中接收一串数字,我需要获取它们 但我不认识他们 所以在字符串中我有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个字符。
答案 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.IndexOf
和String.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);