现在在做一个小工作,要求是把txt文档输入到我的Java程序里,程序自动运算并得出答案。
txt文档内容如下:
10 10 10 10 10 10 10 10 10 10 102.45
0 0 0 0 0 0 1 0 0 0 057.10
0 0 0 1 0 1 1 1 2 0 034.55
0 0 0 1 0 0 1 0 0 1 099.95
0 0 0 0 0 0 0 0 0 0 125.00
0 0 0 0 0 0 1 0 1 0 0
0第一行自动去除掉(原因不解释了,不是问题所在);剩下的我把文本内容用token去除空白换行,并每一行都用vector.add()添加到vector里,顺便用vector.remove()把最后多出的0去掉,剩下的文本就是这样:
2.45
0 0 0 0 0 0 1 0 0 0 0
57.10
0 0 0 1 0 1 1 1 2 0 0
34.55
0 0 0 1 0 0 1 0 0 1 0
99.95
0 0 0 0 0 0 0 0 0 0 1
25.00
0 0 0 0 0 0 1 0 1 0 02.45, 57.10我已经用parseFloat转换成float了,我打算吧每隔一行显示一次的00000111...,每一个0都存为一个Integer,原来的代码是这样:
int fiveCuser = 0;
int tenCuser = 0;
int twentyCuser = 0;
int fiftyCuser = 0;
int oneDuser = 0;
int twoDuser = 0;
int fiveDuser = 0;
int tenDuser = 0;
int twentyDuser = 0;
int fiftyDuser = 0;
int hundredDuser = 0;
for(int i=1;i<10;i+=2)
{
String[] userTenderedTemp = (data.elementAt(i)).split(" ");
fiveCuser = Integer.parseInt(userTenderedTemp[0]);
tenCuser = Integer.parseInt(userTenderedTemp[1]);
twentyCuser = Integer.parseInt(userTenderedTemp[2]);
fiftyCuser = Integer.parseInt(userTenderedTemp[3]);
oneDuser = Integer.parseInt(userTenderedTemp[4]);
twoDuser = Integer.parseInt(userTenderedTemp[5]);
fiveDuser = Integer.parseInt(userTenderedTemp[6]);
tenDuser = Integer.parseInt(userTenderedTemp[7]);
twentyDuser = Integer.parseInt(userTenderedTemp[8]);
fiftyDuser = Integer.parseInt(userTenderedTemp[9]);
hundredDuser = Integer.parseInt(userTenderedTemp[10]);
}
这样我11个int都有了值,但是!我的文本里总共有5行这样的string,我想把这5行的string都自动存到5x11个int里,难道要手动一个一个做?而且,若文本内容改变,少了一行0000121000 string或者多了一行,代码就得重写,我尝试用2d array做但结果有错,麻烦高手帮忙修改下我的代码!
String[] userTenderedTemp = new String[10];
for(int i=1;i<10;i+=2)
{
userTenderedTemp = (data.elementAt(i)).split(" ");
}
int[][] storeAmountTendered = new int[(data.size())/2][10];
for(int i=0;i<(data.size())/2;i++)
{
for(int j=0;j<10;j++)
{
storeAmountTendered[i][j] = Integer.parseInt(userTenderedTemp[j]);
}
}
txt文档内容如下:
10 10 10 10 10 10 10 10 10 10 102.45
0 0 0 0 0 0 1 0 0 0 057.10
0 0 0 1 0 1 1 1 2 0 034.55
0 0 0 1 0 0 1 0 0 1 099.95
0 0 0 0 0 0 0 0 0 0 125.00
0 0 0 0 0 0 1 0 1 0 0
0第一行自动去除掉(原因不解释了,不是问题所在);剩下的我把文本内容用token去除空白换行,并每一行都用vector.add()添加到vector里,顺便用vector.remove()把最后多出的0去掉,剩下的文本就是这样:
2.45
0 0 0 0 0 0 1 0 0 0 0
57.10
0 0 0 1 0 1 1 1 2 0 0
34.55
0 0 0 1 0 0 1 0 0 1 0
99.95
0 0 0 0 0 0 0 0 0 0 1
25.00
0 0 0 0 0 0 1 0 1 0 02.45, 57.10我已经用parseFloat转换成float了,我打算吧每隔一行显示一次的00000111...,每一个0都存为一个Integer,原来的代码是这样:
int fiveCuser = 0;
int tenCuser = 0;
int twentyCuser = 0;
int fiftyCuser = 0;
int oneDuser = 0;
int twoDuser = 0;
int fiveDuser = 0;
int tenDuser = 0;
int twentyDuser = 0;
int fiftyDuser = 0;
int hundredDuser = 0;
for(int i=1;i<10;i+=2)
{
String[] userTenderedTemp = (data.elementAt(i)).split(" ");
fiveCuser = Integer.parseInt(userTenderedTemp[0]);
tenCuser = Integer.parseInt(userTenderedTemp[1]);
twentyCuser = Integer.parseInt(userTenderedTemp[2]);
fiftyCuser = Integer.parseInt(userTenderedTemp[3]);
oneDuser = Integer.parseInt(userTenderedTemp[4]);
twoDuser = Integer.parseInt(userTenderedTemp[5]);
fiveDuser = Integer.parseInt(userTenderedTemp[6]);
tenDuser = Integer.parseInt(userTenderedTemp[7]);
twentyDuser = Integer.parseInt(userTenderedTemp[8]);
fiftyDuser = Integer.parseInt(userTenderedTemp[9]);
hundredDuser = Integer.parseInt(userTenderedTemp[10]);
}
这样我11个int都有了值,但是!我的文本里总共有5行这样的string,我想把这5行的string都自动存到5x11个int里,难道要手动一个一个做?而且,若文本内容改变,少了一行0000121000 string或者多了一行,代码就得重写,我尝试用2d array做但结果有错,麻烦高手帮忙修改下我的代码!
String[] userTenderedTemp = new String[10];
for(int i=1;i<10;i+=2)
{
userTenderedTemp = (data.elementAt(i)).split(" ");
}
int[][] storeAmountTendered = new int[(data.size())/2][10];
for(int i=0;i<(data.size())/2;i++)
{
for(int j=0;j<10;j++)
{
storeAmountTendered[i][j] = Integer.parseInt(userTenderedTemp[j]);
}
}
解决方案 »
- 到底是get提交,还是post提交阿
- 如何将表示多维数组的String分割为由单独数组元素组成的String数组?
- javac
- JAVA语言比较两个文件夹中文件,将不同得文件下传.应该如何比较判断呢? (100分求解,绝对结贴)
- 怎么获得某文件的创建 日期 时间,最后一次修改日期 时间 USING JAVA
- 关于java.nio的异步通讯方面的问题,高分
- 一品狐在吗,追分
- SOS 救救我吧!这个问题困惑了我好几天了。
- 有关树的刷新问题?
- java.net.UnknownHostException: biz.finance.sina.com.cn 1-1000的循环,随机到十几后,就报这个错误
- bbs论坛的问题
- java拼图游戏 怎么实现自动完成功能,请给指教???
数组里再存放数组
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;public class Test { public static void main(String[] args) throws FileNotFoundException {
Scanner scanner = new Scanner(new File("data.txt")); // data.txt是你删除空格后的
List<Entity> entities = new ArrayList<Entity>(); while (scanner.hasNextLine()) {
String floatValueString = scanner.nextLine(); if (scanner.hasNextLine()) {
String intValuesString = scanner.nextLine();
entities.add(new Entity(floatValueString, intValuesString));
}
} System.out.println(entities);
}
}class Entity {
private float floatValue;
private List<Integer> intValues; public Entity(String floatValueString, String intValuesString) {
floatValue = Float.parseFloat(floatValueString.trim()); String[] ints = intValuesString.trim().split(" ");
intValues = new ArrayList<Integer>();
for (int i = 0; i < ints.length; ++i) {
intValues.add(Integer.parseInt(ints[i]));
}
} @Override
public String toString() {
return String.format("Float: %f, Ints: %s\n", floatValue,
intValues.toString());
}
}
0 0 0 0 0 0 1 0 0 0 0
57.10
0 0 0 1 0 1 1 1 2 0 0
34.55
0 0 0 1 0 0 1 0 0 1 0
99.95
0 0 0 0 0 0 0 0 0 0 1
25.00
0 0 0 0 0 0 1 0 1 0 0