Я бы вот такое использовал:
Код | public static String getLine(String str, int lineNumber) { if (str == null || lineNumber <= 0) { return null; } String result = null; int pos = 0; int index = 0; boolean doJob = true; while (doJob) { int end = str.indexOf("\n", pos); if (index + 1 == lineNumber) { if (end == -1) { end = str.length(); } //if (pos < str.length()) //uncomment if null requered instead of zero-size string result = str.substring(pos, end); doJob = false; } else if (end == -1) { doJob = false; } else { pos = end + 1; index++; } } return result; }
|
В твоем же решении ты обрабатываешь весь текст, засовываешь в вектор все строки, а потом из этого вектора создаешь массив строк и уже из этого массива берешь 5-ю строку. очень много лишней работы, если тебе нужна только одна строка... Хотя если этот же текст нужно будет использовать повторно (т.е. потом, например, нужны будут еще 2,3,4 строки, то да - смысл в полном разборе текста есть).
|