首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将字符串矩阵格式化为x行和y列

如何将字符串矩阵格式化为x行和y列
EN

Stack Overflow用户
提问于 2018-04-01 05:11:45
回答 2查看 433关注 0票数 0

我有一个字符串变量,它使用toString()存储获取一个toString的值。

代码语言:javascript
复制
 matrixOne = new ArrayList<ArrayList<ArrayList<T>>>();

 String output = matrixOne.toString().replace("[", "").replace("]", "");

输出以下值:

代码语言:javascript
复制
a, b, c, d, e, f, i, h, g

我希望在toString()方法中对它们进行格式化,将它们格式化为新行上的实际行和列,并在值之间加上一个选项卡。示例:

3乘3:

代码语言:javascript
复制
a  b  c
d  e  f 
i  h  g

注意:行列需要通过更改row column column变量(即)来更改。

所以output现在是:a, b, c, d, e, f, g, h, i, j, k, l, m, , n, o, p

2乘3:

代码语言:javascript
复制
a  b  c  d  e  f  g  i
j  k  l  m  n  o  p  q 

实际方法

代码语言:javascript
复制
public String toString() {

     String output = matrixOne.toString().replace("[", "").replace("]", "");     
         return output;
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-01 07:06:34

希望这能帮上忙

代码语言:javascript
复制
StringBuilder sb = new StringBuilder();
for (int i = 0, rowCount = matrixOne.size(); i < rowCount; i++) {
    ArrayList<ArrayList<T>> row = matrixOne.get(i);
    sb.append(row.toString()
        .replaceAll("\\[\\[|\\]|,|\\[|\\]\\]", "")
        .replace(" ", "\t"));
    sb.append("\n");
}
return sb.toString();
票数 1
EN

Stack Overflow用户

发布于 2018-04-01 15:18:39

Ok,我已经创建了一个方法,该方法可以在矩阵中格式化字符串,其中可以指定行和列:

代码语言:javascript
复制
public String toString() 
{
    String output = matrixOne.toString().replaceAll("\\[\\[|\\]|,|\\[|\\]\\]", "");     
    return FormatMatrix(output, rows, columns);
}
代码语言:javascript
复制
 public static String FormatMatrix(String str, int rows, int columns) {
 try {
  String[][] matrix = new String[rows][columns];
  String[] arr = str.split("\\s*,\\s*");

  int k = 0;
  int s = arr.length;

  for (int i = 0; i < rows; ++i) {
   for (int j = 0; j < columns; ++j) {
    matrix[i][j] = (k < s) ? arr[k] : "*";
    ++k;
   }
  }

  String append = "", result;

  for (int i = 0; i < rows; ++i) {
   append += "|\t";
   for (int j = 0; j < columns; ++j) {
    append += matrix[i][j] + "\t";
   }
   append += "|\n";
  }
  result = append;
  return result;

 } catch (Exception e) {
  return null;
 }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49595014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档