我想将文本的 double 值放在二维数组上。我的文本有这样的 double 值和字符串值
我的文字
deneme deneme 4.5 5.5 6.6 7.5 9.9 9.9
dsdsa sddsf 9.9 8.7 7.5 8.8 4.4 6.5
我从字符串中提取 double 值。 我的程序输出是
4.5 5.5 6.6 7.5 9.9 9.9 9.9 8.7 7.5 8.8 4.4 6.5
我如何输出六重奏。如果我能做到这一点,我将对每一行进行排序
第一线:4.5 5.5 6.6 7.5 9.9 9.9
第二行:9.9 8.7 7.5 8.8 4.4 6.5
public static void main(String[] args) throws IOException {
ArrayList<String> puan;
puan = okuDiziyeKoy("C:\\deneme\\HW.txt");
System.out.format("%d kayıt okundu.%n", puan.size());
for (int j = 0; j < puan.size(); j++) {
String point = puan.get(j);
String[] edit = point.split("[\\{\\}\\)]");
for (String s : edit) {
String a = s.replaceAll("[\\}\\-\\>\\>\\]\\[\\#\\*\\{]+", "");
String b = a.replaceAll("[\\.]+", ",");
Scanner scanner = new Scanner(b);
while (scanner.hasNext()) {
if (scanner.hasNextDouble()) {
Double doubleValue = scanner.nextDouble();
List<Double> numbers = new ArrayList<Double>();
numbers.add(doubleValue);
// System.out.println(Arrays.deepToString(numbers.toArray()));
final int col = 6;
final int rows = numbers.size() % col == 0 ? numbers.size() / col : numbers.size() / col + 1;
double[][] deneme = new double[rows][col];
for (int i = 0; i < rows; i++) {
for (int k = 0; k < col; k++) {
if (i == rows - 1 && k >= numbers.size() % col)
break;
deneme[i][k] = numbers.get(k + col * i);
System.out.print( deneme[i][k]+ " ");
}// for k end
System.out.println(); // go to next line
} // for i end
}// if scan end
else {
//if it is string comes value here
String stringValue = scanner.next();
}// if scan end
}// while end
}// for string s
}// for end
}// main end
最佳答案
在内循环(k
循环)之后引入换行符,使用System.out.println()
。
for (int i = 0; i < numbers.size(); i++) {
for (int k = 0; k < numbers.size(); k++) {
deneme[i][k] = numbers.get(k + (numbers.size() * i));
System.out.print( deneme[i][k]+ " ");
}// for k end
System.out.println(); // to introduce a newline
} // for i end
关于java - 放置双值二维数组读取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17691935/