2017-12-16 1 views
-2

Ich habe eine Arraylist der String, woFür eine ArrayList <String> mit langen Elementen, wie überspringen Sie die erste Zeile?

System.out.printin (Al.get (1))

AX225025 Equine influenza virus H3N8 // 8 (NS) 
CAAAAGCAGGGTGACAAAAACATGATGGATTCCAACACTGTGTCAAGCTTTCAGGTAGACTGTTTTCTTT 
GGCATGTCCGCAAACGATTTGCAGACCAAGAACTGGGTGATGCCCCATTCCTTGACCGGCTTCGCCGAGA 

System.out.printin (Al.get (2))

>LC335987 A/mute swan/Shimane/3211A001/2017 2017/11/05 8 (NS) 
CCAGAAGTCCCTAAAAGGAAGAGGTAGCACTCTTGGTCTGGACATCGAAACAGCCACTCGTGCAGGAAAG 
CAGATAGTGGAGCAGATTCTGGAAGAGGAATCAGATGAGGCACTTAAAATGACCATTGCCTCTGTTCCTG 

Gibt es eine Möglichkeit, die Titelzeile zu überspringen, damit ich eine Analyse der Sequenz ausführen kann, ohne den Titel vollständig von der Sequenz zu trennen?

Antwort

1

Sie möchten nur die Teilzeichenfolge der Eingabe, die nach dem ersten Zeilenvorschubzeichen beginnt. Das ist einfach:

private static String trimHeader(String input) { 
    return input.substring(input.indexOf('\n') + 1); 
} 
+0

Arbeitete wie ein Charme, vielen Dank! –

+0

@BrianCheda: Ich bin froh, dass Sie das nützlich fanden. Im Interesse, Ihnen beizubringen, zu fischen (anstatt Ihnen nur einen Fisch zu geben): Beachten Sie, dass meine Formulierung Ihrer Frage nur geringfügig anders formuliert war als Ihre ursprüngliche Frage, und dass der Code, den ich zeige, eine wörtliche Übersetzung des Wortes ist problem statement: "die Teilzeichenfolge der Eingabe, die (at) startet" ist "Stringstring (int)" und "die (Position von) das erste Zeilenumbruchzeichen" ist '.indexOf ('\ n')' und I verwandelte "(at)" in "nachher" mit '+ 1'. Dies ist eine gute Übung, um in einer Sprache zu denken. (Wirklich, jede Sprache.) –

+0

Und als eine Übung für den Leser: Unter welchen Umständen könnte diese Methode eine Ausnahme auslösen? Ich sehe nur einen, und es ist ziemlich weit hergeholt. (Der offensichtliche Fehlermodus, bei dem die Zeichenfolge kein Zeilenvorschubzeichen enthält, wird bereits behandelt, obwohl dies möglicherweise nicht offensichtlich ist.) –

0

Sie können Ihre String Split/tokenize von (NS) vorausgesetzt, es ist ein Muster in Ihrem Titel und Sequenzzeile

Dies wird Ihnen eine Folge des Elements

String sequence = AI.get(1).split("(NS)")[1] 
Verwandte Themen