طريقة التعاقد لاستخراج أجزاء من السلاسل (رأس FASTA)
سؤال
وبالنظر إلى السلسلة التالية:
string Header =">day11:1:356617";
وكيف استخراج كل شيء ما عدا ">"، العائد فقط:
day11:1:356617
ويمكن أن أفعله حلقة القياسية على الطابع سلسلة والحفاظ على البعض فقط من ">".
string nStr ="";
for (int i=0; i < Header.size(); i++) {
if (Header[i] != ">") {
nStr = nStr + Header[i];
}
}
ولكن يبدو أن النهج أخرق للغاية وبطيء، ولا سيما يجب أن أفعل مثل استخراج بالنسبة للملايين من الخطوط.
المحلول
if (Header[0] == '>') Header = Header.substr(1);
نصائح أخرى
... أنت لم تقل على أي شيء م> حول "الملك" من السلاسل الداخل أو ما كنت تبحث لاقضم بصوت عالي. لو كان الجمل فقط من النموذج الذي أعطيته، وهذا سيكون أسرع:
Header.substring(1);
لا تنتمي إلى StackOverflow