作者NightPrince (shooting star)
看板java
标题Re: [问题] 关於string的重新给值
时间Tue Nov 7 21:39:02 2006
※ 引述《Hangy (有好多书想看)》之铭言:
: 我写了一个程式
: 基本上就是要读一个档 然後把档案需要的地方 存到一个阵列里面
: 我是先宣告一个String的阵列 然後再一个一个给值
: 可是後来印出来 全部都变成null了
: 请问我是那边写错?
: 还有一次宣告一个很大的array似乎效率会不太好
: 请问有没有比较好的写法可以把我想要的东西写进一个string的array里?
: 谢谢
: FileInputStream fileInputStream = new FileInputStream("D://test.txt"); //读档
: BufferedReader br = new BufferedReader(new InputStreamReader(
: fileInputStream));
: while (br.ready()) {
: String str = br.readLine();
: String[] tokens = str.split(" ");
: String[] temp1 = new String[10000]; // 此array用来储存去掉该忽略的符号後 剩下
: 的文字
: int i=0;
: for (String token : tokens)
: {
: if (token.substring(0, 1).equals("%"))
: System.out.print(""); // 遇到注解的时候就忽略
: else if (token.equals("***********************************************"))
: System.out.print(""); // 遇到分行号的时候就忽略
: else if (token.substring(0, 1).equals("1"))
: System.out.print(""); // 遇到数字行号的时候忽略
: else {
: temp1[i]=token; //想在这个地方重新给值 却失败
: i++;
: }
按照你的写法用 StringTokenizer 比较好吧
另外用arraylist来把 token 给新增进去,这样就不用一开始就宣告一个很大的阵列
改写如下:
String str , token;
StringTokenizer tokenizer;
ArrayList<String> strList = new ArrayList();
while (br.ready())
{
str = br.readLine();
tokenizer = new StringTokenizer(str);
while(tokenizer.hasMoreTokens())
{
token = tokenizer.nextToken();
//这里处理你那 for loop 做的事情
else
{
//这里是你有问题的地方
strList.add(token);
}
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.96.181