第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將格式化的字符串解析為數(shù)組

將格式化的字符串解析為數(shù)組

慕妹3242003 2021-07-02 10:07:42
我正在使用以這種格式接收字符串的 InputSteam。[[1,3,4],[43,6,3],[4,2,5]]我將如何將其解析為可用的 java 數(shù)組?
查看完整描述

2 回答

?
慕絲7291255

TA貢獻1859條經(jīng)驗 獲得超6個贊

這是在不使用第 3 方庫的情況下解析該文本的一種方法。


public static int[][] parse(String text) {

    if (! text.startsWith("[[") || ! text.endsWith("]]"))

        throw new IllegalArgumentException("Invalid text: " + text);

    String[] subTexts = text.substring(2, text.length() - 2).split("\\],\\[");

    int[][] result = new int[subTexts.length][];

    for (int i = 0; i < subTexts.length; i++) {

        String[] valueTexts = subTexts[i].split(",");

        result[i] = new int[valueTexts.length];

        for (int j = 0; j < valueTexts.length; j++)

            result[i][j] = Integer.parseInt(valueTexts[j]);

    }

    return result;

}

測試


System.out.println(Arrays.deepToString(parse("[[1,3,4],[43,6,3],[4,2,5]]")));

輸出


[[1, 3, 4], [43, 6, 3], [4, 2, 5]]


查看完整回答
反對 回復 2021-07-07
?
慕尼黑8549860

TA貢獻1818條經(jīng)驗 獲得超11個贊

這是我的嘗試(雖然有點冗長)。該程序int[][]在每種情況下都使用以下三個輸入字符串創(chuàng)建了- 單獨嘗試時:


"[[1,3,4],[43,6,3],[4,2,5]]"

"[[]]"

"[[],[1,2,3],[0]]"

程序代碼:


import java.util.*;

import java.util.stream.*;

public class ArrayParsing {

    private final static String input = "[[1,3,4],[43,6,3],[4,2,5]]";

    private final static String open = "[";

    private final static String open2 = "[[";

    private final static String close = "]";

    private final static String close2 = "]]";

    private final static List<int []> outerContent = new ArrayList<>();

    public static void main(String [] args) {

        String content = "";

        String token = "";

        boolean flag = false;

        for (int i = 0; i < input.length(); i++) {

            token = input.substring(i, i+1);

            if (token.equals(open) || token.equals(open2)) {

                content = "";

                flag = false;

            }

            else if (token.equals(close) && !flag) {

                buildArray(content);

                flag = true;

            }

            else {

                content = content.concat(token);

            }

        }

        int [][] result = outerContent.toArray(new int[outerContent.size()][]);

        System.out.println(Arrays.deepToString(result));

    }

    private static void buildArray(String in) {

        int [] intArray = new int[0];   

        if (in.trim().length() > 0) {

            String [] elements = in.split(",");

            intArray = Arrays.stream(elements)

                             .mapToInt(s -> Integer.parseInt(s))

                             .toArray();

        }

        outerContent.add(intArray);

    }

}


查看完整回答
反對 回復 2021-07-07
  • 2 回答
  • 0 關注
  • 217 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號