Java Получить карту координат X-Y из строки

Есть ли способ получить карту java.awt.Points из строки? Или даже просто одну точку в этой строке. Например, для "xyz123\nabc123" координата (0, 1) будет 'a'.


person Hophat Abc    schedule 18.03.2012    source источник
comment
Может быть, это я, но я не понимаю вашего вопроса. Как xyz123\nabc123 указывает, что (0,2) и (1,2) являются y?   -  person Mike Schachter    schedule 18.03.2012
comment
Извините, что я плохо выразился. я изменил вопрос   -  person Hophat Abc    schedule 18.03.2012


Ответы (3)


Для этого нет ничего встроенного.

Вы можете попытаться разобрать эту строку в массив 2D-символов или вектор массивов символов (в зависимости от того, знаете ли вы, сколько строк всего или нет).

Учитывая "xyz123\nabc123" как str:

//split it by newline, should work on windows/unix
String lines[] = str.split("\\r?\\n");  
char[][] map = new char[lines.length][];
//fill up map, each row is a new line
for(int i = 0; i < lines.length; i ++)
map[i] = lines[i].toCharArray();
//map[0][2] returns 'z'
person XiaoChuan Yu    schedule 18.03.2012

Это можно сделать, но это не общепринятое представление, поэтому не ожидайте, что это будет сделано.

Строка не сильно отличается от массива символов, поэтому они могут вам помочь:

person madth3    schedule 18.03.2012

Не собираюсь сомневаться в ваших мотивах, но вот один из способов:

String find(String[] a, int x, int y) {
    try {
        return String(a[x].charAt(y));   // or y+1 in your example
    }
    catch (Exception exc) {
        return NULL; 
    }
}
...

String s = "xyz123\nabc546";
String[] sa = s.split("\\n");

find(sa, 0, 0);  // returns "x"
find(sa, 1, 2);  // returns "c"
find(sa, 3, 2);  // returns NULL
person Apprentice Queue    schedule 18.03.2012