gpt4 book ai didi

java - 如何使用正则表达式从字符串中提取积分模式

转载 作者:行者123 更新时间:2023-11-29 05:38:07 24 4
gpt4 key购买 nike

我正在尝试制作一个 mapLoader,它读取文件的文本文件(这里是示例)

[5,3,3,900,3,89,3,3,3,3,3,430,3,1439,3,65,3,320,3,3,3,3,3,3]
[3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,21,3,3,3,3,3]
[5,3,3,900,3,89,3,3,3,3,3,430,3,1439,3,65,3,320,3,3,3,3,3,3]
[3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,21,3,3,3,3,3]
[5,3,3,900,3,89,3,3,3,3,3,430,3,1439,3,65,3,320,3,3,3,3,3,3]
[3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,21,3,3,3,3,3]
[5,3,3,900,3,89,3,3,3,3,3,430,3,1439,3,65,3,320,3,3,3,3,3,3]
[3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,21,3,3,3,3,3]
[5,3,3,900,3,89,3,3,3,3,3,430,3,1439,3,65,3,320,3,3,3,3,3,3]
[3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,21,3,3,3,3,3]
[5,3,3,900,3,89,3,3,3,3,3,430,3,1439,3,65,3,320,3,3,3,3,3,3]
[3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,21,3,3,3,3,3]
[5,3,3,900,3,89,3,3,3,3,3,430,3,1439,3,65,3,320,3,3,3,3,3,3]
[3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,21,3,3,3,3,3]
[3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,21,3,3,3,3,3]

我将每一行加载到一个 String[15] 中,因此每个 Bracket 都与其余部分隔离

我正在创建一个游戏,它是一个 2D 角色扮演游戏(很原始吧?),上面的数字是关键整数,它们告诉我在哪里放置图 block 图像,以及在“mapTile BufferedImage[]”

括号内的每个数字代表X轴上的1个单位,

括号的每个集合构成 Y 轴上的 1 个单元。

我的网格大小是 24x15

我的问题是我试图获取数字,并将它们放入一个 int[24][15] 中,但如您所知,它的字符串长度可能会有所不同。可以在逗号之间使用的最多“数字”是“4”,因为我没有超过 9999 个 mapTiles 哈哈

如何创建提取该信息的正则表达式?

最佳答案

您的数据集太简单,无法使用正则表达式。您可以轻松地用 , 逗号分隔行来解析您的坐标。此外,如果您想将坐标存储为 int[ rows][cols],假设您的网格是 24x15

int[][] coords = new int[15][24];
BufferedReader br = new BufferedReader(new FileReader("/path/to/file"));

int row = 0;
String line = null;
while ((line = br.readLine()) != null) {
// remove "[ ]" then split by ","
String[] x = line.substring(1, line.length() - 1).split(",");
// parse first 24 values only
int cols = Math.min(x.length, 24);
for (int col = 0; col < cols; col++) {
coords[row][col] = Integer.parseInt(x[col]);
}
if (++row >= 15) break; // parse first 15 lines only
}

for (int i = 0; i < coords.length; i++) {
for (int j = 0; j < coords[i].length; j++) {
System.out.print(coords[i][j]);
}
System.out.println();
}

输出:

53390038933333430314393653320333333
3333333333333333332133333
53390038933333430314393653320333333
3333333333333333332133333
53390038933333430314393653320333333
3333333333333333332133333
53390038933333430314393653320333333
3333333333333333332133333
53390038933333430314393653320333333
3333333333333333332133333
53390038933333430314393653320333333
3333333333333333332133333
53390038933333430314393653320333333
3333333333333333332133333
3333333333333333332133333

关于java - 如何使用正则表达式从字符串中提取积分模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18710616/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com