将文件数据读入两个数组(不是数组列表)
Reading file data into two arrays (not array lists)
我有一个文件:
A,0.3
B,0.1
C,0.2
...
我希望生成的数组具有以下形式:
String[] symbols = {A, B, C, ...}
Double[] frequencies = {0.3, 0.1, 0.2, ...}
我已经使用 ArrayList 解决了这个问题(.add() 很好),但是在做出一些设计决定之后,我想要常规数组中的数据。显然我下面的实现不起作用,但它是我最接近的实现:
while (scan.hasNextLine()) {
count ++; // Number of lines incremented
String[] parts;
parts = r.split(",");
// Store symbols into its own array
for(int i = 0; i < count; i ++)
syms[i] = parts[0];
// Store frequencies into its own array
for(int i = 0; i < count; i ++)
freqs[i] = Double.parseDouble(parts[1]);
}
Count 跟踪扫描行的数量(true while 条件),起初对我来说似乎没有必要,但我现在正在尝试。因此,帮助。谢谢
已解决: 我已经创建了一个包含 5 个数组的数组,但是好的方法是使用数组列表来动态增加和减少数组的大小
public static void main(String[] args) throws IOException {
String[] myArray;
double[] doubleArray = new double[5];
String[] strArray= new String[5];
int inc1=0;
int inc2=0;
FileReader fileReader = new FileReader("test.txt");
Scanner s= new Scanner(fileReader);
while(s.hasNext()){
myArray= s.next().split(",");
// to store double values
for (String getStr: myArray) {
if(isDouble(getStr)==true){
doubleArray[inc1]= Double.parseDouble(getStr);
inc1++;
}
// to store string values
else {
strArray[inc2]=getStr;
inc2++;
}
}
}
for(String ss : strArray){
System.out.println("str value-> : "+ ss);
}
for(Double nnn : doubleArray){
System.out.println("double value-> : " + nnn);
}
fileReader.close();
}
如果它发送 true 则检查其是否可转换,否则为 false
public static boolean isDouble( String input ) {
try {
Double.parseDouble(input );
return true;
}
catch( Exception e ) {
return false;
}
}
测试文件包含:
A,0.3
B,0.1
C,0.2
d,0.4
e,0.5
输出:
str value-> : A
str value-> : B
str value-> : C
str value-> : d
str value-> : e
double value-> : 0.3
double value-> : 0.1
double value-> : 0.2
double value-> : 0.4
double value-> : 0.5
希望回答问题是否比投票有用
我有一个文件:
A,0.3
B,0.1
C,0.2
...
我希望生成的数组具有以下形式:
String[] symbols = {A, B, C, ...}
Double[] frequencies = {0.3, 0.1, 0.2, ...}
我已经使用 ArrayList 解决了这个问题(.add() 很好),但是在做出一些设计决定之后,我想要常规数组中的数据。显然我下面的实现不起作用,但它是我最接近的实现:
while (scan.hasNextLine()) {
count ++; // Number of lines incremented
String[] parts;
parts = r.split(",");
// Store symbols into its own array
for(int i = 0; i < count; i ++)
syms[i] = parts[0];
// Store frequencies into its own array
for(int i = 0; i < count; i ++)
freqs[i] = Double.parseDouble(parts[1]);
}
Count 跟踪扫描行的数量(true while 条件),起初对我来说似乎没有必要,但我现在正在尝试。因此,帮助。谢谢
已解决: 我已经创建了一个包含 5 个数组的数组,但是好的方法是使用数组列表来动态增加和减少数组的大小
public static void main(String[] args) throws IOException {
String[] myArray;
double[] doubleArray = new double[5];
String[] strArray= new String[5];
int inc1=0;
int inc2=0;
FileReader fileReader = new FileReader("test.txt");
Scanner s= new Scanner(fileReader);
while(s.hasNext()){
myArray= s.next().split(",");
// to store double values
for (String getStr: myArray) {
if(isDouble(getStr)==true){
doubleArray[inc1]= Double.parseDouble(getStr);
inc1++;
}
// to store string values
else {
strArray[inc2]=getStr;
inc2++;
}
}
}
for(String ss : strArray){
System.out.println("str value-> : "+ ss);
}
for(Double nnn : doubleArray){
System.out.println("double value-> : " + nnn);
}
fileReader.close();
}
如果它发送 true 则检查其是否可转换,否则为 false
public static boolean isDouble( String input ) {
try {
Double.parseDouble(input );
return true;
}
catch( Exception e ) {
return false;
}
}
测试文件包含:
A,0.3
B,0.1
C,0.2
d,0.4
e,0.5
输出:
str value-> : A
str value-> : B
str value-> : C
str value-> : d
str value-> : e
double value-> : 0.3
double value-> : 0.1
double value-> : 0.2
double value-> : 0.4
double value-> : 0.5
希望回答问题是否比投票有用