2012-03-18 207 views
0

有什么办法从字符串获取java.awt.Point的地图吗?或者甚至只是该字符串上的一个点。例如对于"xyz123\nabc123",坐标(0, 1)将是'a'Java从字符串获取X-Y坐标的地图

+0

也许是我,但我不明白你的问题。 “xyz123 \ nabc123”如何表示(0,2)和(1,2)是y? – 2012-03-18 02:52:42

+0

对不起,我措辞严重。我改变了这个问题 – 2012-03-18 02:56:29

回答

0

没有什么内置了点。

您可以尝试将该字符串解析为二维char数组或char数组的向量(取决于您是否知道总共有多少行)。

鉴于“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' 
+0

感谢这是完美的。 – 2012-03-18 05:21:42

0

不会怀疑你的动机,但这里是一个办法:

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