Чтение строк более эффективно - PullRequest
2 голосов
/ 12 апреля 2010

Я получаю довольно большую входную строку в свой метод, но на самом деле мне нужна только первая строка этой строки. Можно ли извлечь только первую строку из уже существующей строки?

Ответы [ 3 ]

6 голосов
/ 12 апреля 2010

Вы можете использовать indexOf(), чтобы найти первый разрыв строки, и substring(), чтобы взять подстроку от 0 до этого перевода строки

Редактировать: Пример (при условии, что разрыв строки равен \ n):

String str = "Line 1\nLine 2\nLine 3";
String firstLine = str.substring(0, str.indexOf("\n"));
//firstLine == "Line 1"
3 голосов
/ 14 апреля 2010

Наиболее кратким и читаемым вариантом является использование java.util.Scanner.

String reallyLongString = //...
String firstLine = new Scanner(reallyLongString).nextLine();

Scanner - намного более продвинутая альтернатива для наследства StringTokenizer; он может анализировать int, double, boolean, BigDecimal, шаблоны регулярных выражений и т. д. из любого Readable, с перегрузками конструктора, которые также принимают File, InputStream, String и т. д. .

Смотри также

0 голосов
/ 12 апреля 2010
public string FirstLine(string inputstring)
        {
            //split the given string using newline character     
            string[] strarray = inputstring.Split('\n');

//return the first element in the array as that is the first line
            return strarray[0];
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...