java - 最大的行和列 Java 正则表达式

标签 java regex

这是一个程序,用于确定任何给定随机数组上的最大行和列。 我不确定最后 3 行代码在做什么。

我知道它们是正则表达式的一部分,但似乎找不到显示这意味着“^\d,]”的资源 谁能解释一下这三行代码发生了什么?

System.out.println(Arrays.deepToString(matrix).replaceAll("[^01\]]","").replaceAll("]","\n")); System.out.println("最大行索引:"+ rowIndices.toString().replaceAll("[^\d,]","")); System.out.println("最大列索引:"+ colIndices.toString().replaceAll("[^\d,]",""));

public class LargestRowsColumnsTest {
public static void main (String[] args){
Random rand = new Random(System.currentTimeMillis());

    Scanner input = new Scanner(System.in);
    System.out.print("Enter array size n: ");
    int n = input.nextInt();

    int maxRowValue=0;
    int maxColValue=0;
    int [][] matrix = new int[n][n];
       for (int i=0;i<n;i++){
           for(int j=0;j<n;j++){
            matrix[i][j]=  rand.nextInt(100)%2;
           }
       }
    int[]rowsSum = new int[n];
    int[]colsSum = new int[n];

    for (int i=0;i<n;i++){
        for (int j=0;j<n;j++){
         rowsSum[i]=rowsSum[i]+matrix[i][j];
         colsSum[i]=colsSum[i]+matrix[j][i];
        }
        if(maxRowValue<rowsSum[i])maxRowValue=rowsSum[i];
        if(maxColValue<colsSum[i])maxColValue=colsSum[i];
    }

    List<Integer> rowIndices = new ArrayList<>();
    List<Integer> colIndices = new ArrayList<>();

    for (int i=0;i<n;i++){
        if(rowsSum[i]==maxRowValue)rowIndices.add(i);
        if(colsSum[i]==maxColValue)colIndices.add(i);
    }
    System.out.println("The random array is: ");
    System.out.println(Arrays.deepToString(matrix).replaceAll("[^01\\]]","").replaceAll("]","\n"));
    System.out.println("Largest row index: " + rowIndices.toString().replaceAll("[^\\d,]",""));
    System.out.println("Largest column index: " + colIndices.toString().replaceAll("[^\\d,]",""));

}

}

最佳答案

\d 是数字(相当于[0-9]),[] 是字符组, ^ 在字符组内表示不是。

所以[^\d]表示不是数字,或者相当于[^0-9]

在字符串文字中,您需要转义\.

供您引用: http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

关于java - 最大的行和列 Java 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23300265/

相关文章:

c++ - 无法弄清楚为什么正则表达式不起作用

regex - Notepad++ 中的搜索模式

java - Android 中的应用程序有不同的外观吗?

java - 有没有更好的方法来处理将多个参数传递给方法

regex - 替换为保留部分模式的正则表达式

java - 正则表达式获取两个下划线之间的单词

java - JUnit 检查新 API 是否包含枚举

java - 如何为将目录复制到目录的 API 编写 JUnit 测试

java - 扩展 JSP 自定义标签

regex - 我如何使这个正则表达式 URL 模式在 Django 2 中工作