我正在开发一个应用程序,其中具有一定数量的行和列,它是使用带有JQuery-Seat-Charts库的 JQuery 自动生成的。
原则上,我设法通过向应用程序发送请求的AJAX函数和通过 Java 完美地完成这一生成;我创建了图书馆需要的地图。
座位示例如下:
[
'aaa___aaa',
'aaaa_aaaa',
'aaaa_aaaa'
]
'a' 是座位,'_' 是间隙。我遇到的问题是图书馆本身拥有的数字的自动生成,因为最终用户希望能够手动分配数字,为此图书馆有一个资源可以直接在地图上覆盖这些数字,就像这样:
[
'a[,NUMBUTACA1]a[,NUMBUTACA1]a___a[,NUMBUTACA1]aa',
'aaaa_aaaa[,JUST_LABEL1]',
'aaaa_aaaa'
]
最后,问题来了:目前我将地图保存在 Java 字符串中,然后启用一个功能,以便用户自己为座位编号,我必须在每个“a”之后添加必要的括号。问题是,目前,要对座位进行任何更改,我正在读取字符串以获取它们的位置(用换行符分隔行并为该行的每个字母迭代字符串),如下所示:
String[] lineas = mapa.split(SALTO_LINEA);
String[] pos = posicion.split("_");
int fila = Integer.valueOf(pos[0]) - 1;
int columna = Integer.valueOf(pos[1]) - 1;
for (int i = 0; i < lineas.length; i++) {
String linea = lineas[i];
for (int j = 0; j < linea.length(); j++) {
if (i == fila && j == columna) {
if (linea.charAt(j) == 'a') {
resultado += HUECO;
} else {
resultado += ASIENTO;
}
} else {
resultado += linea.charAt(j);
}
}
resultado += SALTO_LINEA;
}
我看到如果我开始在每个座位后面添加支架,这将不再适用于我,因为例如,a[,2]_aa
在触摸最后一个座位的情况下,我必须在实际位置上添加 4 才能匹配。
我怎样才能在不影响位置的情况下添加这些括号?(或者如果在 Java 或 JQuery 中有一些功能,我可以以或多或少有效的方式做到这一点)。
我的建议是不要使用不适当的格式,并且进行适当的转换(通常从 A 到 B 和从 B 到 A 就足够了)。
我还没有很好地理解具体问题,但基本上我建议您以一种舒适的方式来表示您的数据以使用它们,例如您的房间可以是一组座位对象的数组。
假设座位
它
toFormat
将该座位转换为它的任何表示形式(在您的情况下,例如_
或a[34]
您需要的任何东西(我不清楚)。现在要将字符串转换为您可以执行的表示
同样,给定一组座位,生成最终字符串
有了这个,我们可以看到一个例子(它也可以作为一个测试),它验证了结合前面两个转换所产生的恒等式的不变性(如果你有 A,你将它传递给 B,B 你将它传递给 A,那么你如果一切顺利,则与开始时相同)。
有了这个,您现在可以轻松地使用您的座位,因为它们是数组中的对象。
注意:示例数组导致: