Вопрос
Как разделить строку на "новую строку"? Автор вопроса: amg 14.08.2012 Ответов: 7
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String str
while ((str =in.readLine()) != null)
{
items = str.split("\n");
}
in.close();
Строка (str) содержит данные из текстового файла, например:
январь
февраль
Маршировать
и т. д.
Каждое слово находится на новой строке. Я хочу прочитать строку и отделить каждое слово в новой строке и сохранить в массив объектов String (это будет переменная с именем "элементы").
android string split
Ответы Ответ 1 · рейтинг 12 · paxdiablo
На самом деле BufferedReader.readLine уже разбивает ввод на основе символов новой строки.
Итак, где у вас сейчас:
items=str.split("\n");
вам нужно только добавить str к вашему массиву.
Например, с файлом infile, содержащим:
January
February
March
April
May
June
следующая программа выводит 6 (размер созданного списка массивов):
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
class Test {
public static void main (String[] args) {
try {
ArrayList<String> itms = new ArrayList<String> ();
BufferedReader br = new BufferedReader (new FileReader ("infile"));
String str;
while ((str = br.readLine()) != null)
itms.add(str);
br.close();
System.out.println (itms.size());
} catch (Exception e) {
System.out.println ("Exception: " + e);
}
}
}
Ответ 2 · рейтинг 2 · Eric
Метод readLine уже читает построчно. В этой строке не будет \n символов.
Попробуйте это вместо этого:
ArrayList<String> itemList = new ArrayList<String>();
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String str;
while ((str = in.readLine()) != null) {
itemList.add(str);
}
in.close();
Ответ 3 · рейтинг 1 · Firhat
это мой код и его работа для меня
private class DownloadWebPageTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
String response = "";
for (String url : urls) {
DefaultHttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url);
ArrayList<String> itemList = new ArrayList<String>();
try {
HttpResponse execute = client.execute(httpGet);
InputStream content = execute.getEntity().getContent();
BufferedReader buffer = new BufferedReader(
new InputStreamReader(content, "iso-8859-1"));
StringBuilder sb = new StringBuilder();
String s = null;
while ((s = buffer.readLine()) != null) {
itemList.add(s);
}
response = itemList.get(0);
content.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return response;
}
@Override
protected void onPostExecute(String result) {
textView.setText(Html.fromHtml(result));
}
}
public void readWebpage(View view) {
DownloadWebPageTask task = new DownloadWebPageTask();
task.execute(new String[] { "http://www.yourURL.com" });
}
Функция readWebpage - это функция onclick , которую я создаю в своем кнопочном xml следующим образом
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<Button android:layout_height="wrap_content" android:layout_width="match_parent" android:id="@+id/readWebpage" android:onClick="readWebpage" android:text="Load Webpage"></Button>
<TextView android:id="@+id/TextView01" android:layout_width="match_parent" android:layout_height="match_parent" android:text="Example Text"></TextView>
in my code I try to get the first line so I use itemList.get(0) if you want to get another line just change the index like itemList.get(1) or itemList.get(n)
Ответ 4 · Ram kiran
используйте Arraylist для этого..
ArrayList<String> items= new ArrayList<String>();
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String str;
while ((str =in.readLine()) != null)
{
items.add(str.split("\n"));
}
in.close();
=====> Проверка
for(int i=0;i<items.size;i++)
{
System.out.println("item name "+items.get(i));
}
Ответ 5 · Suragch
Как разделить строку по новой строке
Я пришел к этому вопросу, просто желая разделить строку, а не файл. Так что я отвечу, что здесь для будущих посетителей.
Дано
String myString = "one/ntwo/nthree";
Вы можете преобразовать его в массив с помощью
String myArray[] = myString.split("\n"); // {"one", "two", "three"};
И при необходимости его можно преобразовать в List с помощью
List myList = new ArrayList();
Collections.addAll(myList, myArray);
Ответ 6 · Rahul Kushwaha
В Android/Java это очень просто. Следить за этим :-
Предполагать
String txt="I am Rahul Kushwaha.I am an Android Developer";
Теперь, чтобы разделить это на строки за строкой. Используйте метод split() . Например: -
String txt_split=txt.split("\n");
System.out.println(txt_split);
Выход :-
I
am
Rahul
Kushwaha
.
I
am
an
Android
Developer
Теперь, чтобы получить длину разделенной строки, используйте метод length() .
int txt_length=txt_split.length();
System.out.println("text length=",txt_length);
Выход:-
text length=10
К конкретным данным по строке. Сделайте так: -
String[] text_data=txt.split("\n");
System.out.println("Name :",text_data[2]);
System.out.println("Title :",text_data[3]);
System.out.println("Job :",text_data[8]);
Выход:-
Name :Rahul
Title :Kushwaha
Job :Android
Надеюсь, это поможет вам. Спасибо...
Ответ 7 · ronan
если вы хотите оставить пустые строки, если вообще, вы можете использовать
String lines[] = givenString.split("\\r?\\n", -1);
Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow .