行问题拆分

7tofc5zh  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(402)

我有个密码:

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文件已准备好读取,现在我只需添加一个“规则”到它,但我不知道在哪里。。。

nwnhqdif

nwnhqdif1#

你想把文本按 ; 以及 -> ? 此外,循环中的if语句是不必要的,因为它们都执行相同的操作 arr[i] = integer... 就其本身而言也应该如此

jm81lzqq

jm81lzqq2#

我不确定我是否完全理解这个问题,但基于你相同的观点 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] .
在线试用。
但不知道你的真实想法 lines 方阵,我只能猜测你的意图。

相关问题