java - 线路问题拆分

标签 java templates split

我有一个代码:

public static CuttingTemplate parseCuttingTemplate(String[] lines) {


        int size = lines.length;
        int[] arr = new int[size];

        int i;
        for(i = 0; i < size; ++i) {
            if (i == 0) {
                arr[i] = Integer.parseInt(lines[i]);
            }

            if (i >= 1) {
                arr[i] = Integer.parseInt(lines[i]);
            }
        }

        int width = arr[0];
        int height = arr[0];
        CuttingTemplate ct = new CuttingTemplate(width, height);
        return ct;
    }

我需要找到一种方法将 .split(";").split("->") 添加到我的行中。 txt 文件已准备好读取,现在我只需向其中添加一个“规则”,但我不知道该在哪里...

最佳答案

我不确定我完全理解这个问题,但根据您相同的 arr[i] = Integer.parseInt(lines[i]); 行,我假设您想拆分在一种情况下为 ;,在另一种情况下则在 -> 上拆分。您的 lines[i] 是您要循环的各个 String 行,因此您可以执行以下操作:

if (i == 0) {
  String[] splitBySemicolon = lines[i].split(";");
  // Get the integer before the ';':
  arr[i] = Integer.parseInt(splitBySemicolon[0]);
  // or alternatively:
  // Get the integer after the ';':
  arr[i] = Integer.parseInt(splitBySemicolon[1]);
}
// Minor note: you loop in the range [0, size),
// so you can just use an else here since i cannot be negative
else{
  String[] splitByArrow = lines[i].split("->");
  // Get the integer before the '->':
  arr[i] = Integer.parseInt(splitByArrow[0]);
  // or alternatively:
  // Get the integer after the '->':
  arr[i] = Integer.parseInt(splitByArrow[1]);
}

例如,假设您的lines数组包含["1;header", "3->something", "4->somethingMore"],上面的代码(使用[ 0] 用于字符串数组的索引),将导致 arr = [1, 3, 4]

Try it online.

但是在不知道您实际的 lines 数组的情况下,我只能猜测您的预期行为。

关于java - 线路问题拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59898023/

相关文章:

c++ - 模板结构的 vector

c++ - 定义模板结构的特征时出现不完整的类型错误

c++ - 将模板仿函数传递给模板 std::function

java - 当我尝试拆分句子时出现错误

java - Android 强制关闭 split() 函数

java - 引用执行jar位置

java - jzy3d 中缺少示例代码导入

java - 如何使用opencv在代理后面捕获视频

php - 如何将数字相乘直到达到个位数并计算数字?

java - 正则表达式组合