- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对java中的ArrayLists了解不多。我需要解决以下问题:如何制作二维矩阵列的 array[] 。输入文件是:
V G V VV G V V V
E F V VF E V E V
VVVVVVVVV
A A V VA G V A D
V D V VD E V V V
A V V VV V V A V
Stringarray liner
所需的格式(见下文)是:
{"VEVAVA","GFVADV","VVVVVV","VVVFVVVAVDVV","GEVGEV","VVVVVV","VEVAVA","VVVDVV"}
我的代码是:
ArrayList<String[]> mat = new ArrayList<String[]>();
Scanner scan = new Scanner(new File("internal2"));
String[] liner = new String[m];
while (scan.hasNextLine()) {
Scanner colReader2 = new Scanner(scan.nextLine());
while(colReader2.hasNext())
{
for(int i = 0; i<m; i++) {
liner[i] = colReader2.next();
//System.out.println(liner[i]);
mat.add(liner);
}
}
// scan.nextLine();
}
这样做的目的是我想在liner
中搜索这些字符串。现在程序似乎只给出这样的liner
:{"A","V","V","VV","V","V","A","V"}这是输入文件的最后一行。我希望你能帮助我。
编辑
我的代码继续:
Pattern pattern = Pattern.compile("[A-G]+");
Pattern pattern2 = Pattern.compile("[V]+");
String[][] matrix4 = mat.toArray(new String[n][m]);
for (int i = 0; i < m; i++) {
StringBuffer sf = new StringBuffer();
for (int j = 0; j < n; j++) {
sf.append(matrix4[j][i]);
}
Matcher matcher = pattern.matcher(sf.toString());
Matcher matcher2 = pattern2.matcher(sf.toString());
if (matcher.find()) {
System.out.println("R");
} else if (matcher2.matches()) {
System.out.println("Q");
}
}
因此,对于 liner
中至少包含 1 次 A-G
出现的列字符串,必须打印 R
。对于仅包含 V
的列字符串,它必须打印 Q
。那么输出应该是:
R
R
Q
R
R
Q
R
R
但这不是我得到的。你们有人知道我做错了什么吗?
已解决:
我必须使用 Arrays.fill(liner, ""); 来将
null
从衬垫中取出
最佳答案
Scanner.next()
仅扫描字符直到下一个空格。如果您想扫描整行,请使用 Scanner.nextLine()
,它应该为您提供 “V G V VV G V V V”
。要删除字符之间的空格,请使用 String.replaceAll("\s", "")
。
更新:抱歉,我误解了您的问题。
要获得所需的输出,请将 liner[i] = colReader2.next()
更改为 liner[i] += colReader2.next()
这应该将一个字符附加到数组条目而不是替换它。
更新#2:我测试了您的代码片段并发现了一些问题。
liner[i]
未使用空字符串初始化,这会导致输出 nullVEVAVA
等等...我没有检查这一点,抱歉.mat.add(liner)
仅添加对数组的引用,因此如果更改该数组,这些更改也将在 ArrayList 中可见假设您想要一个字符串数组的 ArrayList 来保存输入的列(我假设它不是锯齿状的),这应该可以做到(好吧,至少它给了我所需的输出):
ArrayList<String[]> input = new ArrayList<String[]>();
Scanner sc = new Scanner(new File("input"));
// read the input
while (sc.hasNextLine()) {
input.add(sc.nextLine().split("\\s"));
}
sc.close();
// this only works if your input isn't jagged!
String[][] mat = new String[input.get(0).length][];
// transform your matrix from [line][column] to [column][line]
for (int i = 0; i < input.size(); i++) {
for (int j = 0; j < input.get(i).length; j++) {
if (mat[j] == null) {
mat[j] = new String[input.size()];
}
if (mat[j][i] == null) {
mat[j][i] = "";
}
mat[j][i] += input.get(i)[j];
}
}
Pattern pattern = Pattern.compile("[A-G]+");
Pattern pattern2 = Pattern.compile("[V]+");
for (int i = 0; i < mat.length; i++) {
StringBuilder sb = new StringBuilder();
for (int j = 0; j < mat[i].length; j++) {
sb.append(mat[i][j]);
}
Matcher matcher = pattern.matcher(sb.toString());
Matcher matcher2 = pattern2.matcher(sb.toString());
if (matcher.find()) {
System.out.println("R");
} else if (matcher2.matches()) {
System.out.println("Q");
}
}
如果这仍然没有帮助,我很抱歉,但我的时间和你的时间一样宝贵,我相信你可以通过做一些像样的研究来解决许多问题。但是,如果您真的遇到困难,只需回来问另一个问题,我们将很乐意帮助您;)
关于java - 将二维矩阵转换为列的字符串数组(java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15327209/
假设我有两个矩阵,每个矩阵有两列和不同的行数。我想检查并查看一个矩阵的哪些对在另一个矩阵中。如果这些是一维的,我通常只会做 a %in% x得到我的结果。 match似乎只适用于向量。 > a
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 9 个月前。 Improv
我只处理过 DirectX 矩阵 我读过一些文章,说不能将 DirectX 矩阵数学库用于 openGL 矩阵。 但我也读过,如果你的数学是一致的,你可以获得类似的结果。那只会让我更加困惑。 任何人都
我编写了一个C++代码来解决线性系统A.x = b,其中A是一个对称矩阵,方法是首先使用LAPACK(E)对角矩阵A = V.D.V^T(因为以后需要特征值),然后求解x = A^-1.b = V^T
我遇到了问题。我想创建二维数组 rows=3 cols=2我的代码如下 int **ptr; int row=3; int col=2; ptr=new int *[col]; for (int i=
我有一个 3d mxnxt 矩阵,我希望能够提取 t 2d nxm 矩阵。在我的例子中,我有一个 1024x1024x10 矩阵,我想要 10 张图像显示给我。 这不是 reshape ,我每次只需要
我在 MATLAB 中有一个 3d 矩阵 (n-by-m-by-t) 表示一段时间内网格中的 n-by-m 测量值.我想要一个二维矩阵,其中空间信息消失了,只剩下 n*m 随着时间 t 的测量值(即:
作为一个简化的示例,我有一个 3D numpy 矩阵,如下所示: a = np.array([[[1,2], [4,np.nan], [7,
作为一个简化的示例,我有一个 3D numpy 矩阵,如下所示: a = np.array([[[1,2], [4,np.nan], [7,
使用 eigen2 , 并给定一个矩阵 A a_0_0, a_0_1, a_0_2, ... a_1_0, a_1_0, a_1_2, ... ... 和一个矩阵B: b_0_0, b_0_1, b_
我想知道如何获得下面的布局。 在中型和大型设备上,我希望有 2 行和 2 列的布局(2 x 2 矩阵)。 在小型(和超小型)设备上或调整为小型设备时,我想要一个 4 行和 1 列的矩阵。 我将通过 a
有什么方法可以向量化以下内容: for i = 1:6 te = k(:,:,:,i).*(c(i)); end 我正在尝试将 4D 矩阵 k 乘以向量 c,方法是将其
如何从填充有 1 和 0 的矩阵中抽取 n 个随机点的样本? a=rep(0:1,5) b=rep(0,10) c=rep(1,10) dataset=matrix(cbind(a,b,c),nrow
我正在尝试创建一个包含 X 个 X 的矩阵。以下代码生成从左上角到右下角的 X 对 Angular 线,而不是从右上角到左下角的 X 对 Angular 线。我不确定从哪里开始。是否应该使用新变量创建
我想在 python 中创建一个每行三列的矩阵,并能够通过任何一行对它们进行索引。矩阵中的每个值都是唯一的。 据我所知,我可以设置如下矩阵: matrix = [["username", "name"
我有点迷茫 我创建了一个名为 person 的类,它具有 age 和 name 属性(以及 get set 方法)。然后在另一个类中,我想创建一个 persons 数组,其中每个人都有不同的年龄和姓名
我有 n 个类,它们要么堆叠,要么不堆叠。所有这些类都扩展了同一个类 (CellObject)。我知道更多类将添加到此列表中,我想创建一种易于在一个地方操纵“可堆叠性”的方法。 我正在考虑创建一个矩阵
我有一个包含 x 个字符串名称及其关联 ID 的文件。本质上是两列数据。 我想要的是一个格式为 x x x 的相关样式表(将相关数据同时作为 x 轴和 y 轴),但我想要 fuzzywuzzy 库的函
机器学习与传统编程的一个重要区别在于机器学习比传统编程涉及了更多的数学知识。不过,随着机器学习的飞速发展,各种框架应运而生,在数据分析等应用中使用机器学习时,使用现成的库和框架成为常态,似乎越来越不需
当我在 julia 中输入这个错误跳转但我不知道为什么,它应该工作。/ julia> A = [1 2 3 4; 5 6 7 8; 1 2 3 4; 5 6 7 8] 4×4 Array{Int64,
我是一名优秀的程序员,十分优秀!