BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String str
while ((str =in.readLine()) != null)
{
items = str.split("\n");
}
in.close();
String(str)包含来自文本文件的数据,如:
一月
二月
三月
等
每个单词都在ag新行上。 我想读取字符串并在新行上分隔每个单词并存储到String对象数组中(这将是名为'items'的变量)。
答案 0 :(得分:12)
实际上,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);
}
}
}
答案 1 :(得分:2)
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();
答案 2 :(得分:1)
这是我的代码及其对我的工作
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>
在我的代码中我尝试获取第一行所以我使用 itemList.get(0)如果你想获得另一行只是改变索引,例如 itemList.get(1)或 itemList.get(n)
答案 3 :(得分:0)
使用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();
=====&GT;检查
for(int i=0;i<items.size;i++)
{
System.out.println("item name "+items.get(i));
}
答案 4 :(得分:0)
我来到这个问题只是想分割一个字符串,而不是一个文件。因此,我将在这里为将来的访问者解答。
给予
String myString = "one/ntwo/nthree";
您可以使用以下方法将其转换为数组
String myArray[] = myString.split("\n"); // {"one", "two", "three"};
如果需要,可以使用
将其转换为List
List myList = new ArrayList();
Collections.addAll(myList, myArray);
答案 5 :(得分:0)
在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);
OutPut:-
I
am
Rahul
Kushwaha
.
I
am
an
Android
Developer
现在,要获取拆分字符串的长度,请使用 lenght()方法。
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
希望这会对您有所帮助。谢谢...
答案 6 :(得分:0)
如果您想保留所有空白行,则可以使用
String lines[] = givenString.split("\\r?\\n", -1);