2013-07-10 34 views
1

有没有或多或少的简单方法(而不必自己实现)来使用二维数组类语法访问字符串中的字符?Java - 以二维数组的方式访问字符串中的字符?

例如:

"This is a string\nconsisting of\nthree lines" 

在哪里,你可以访问(读/写)'f'的东西像myString[1][12] - 第二行第13列。

+2

我明白为什么要编辑以显示有效的Java语法,但我认为您的原始布局更易于理解! –

回答

6

您可以使用split()函数。假设你的字符串是分配给变量s,然后

String[] temp = s.split("\n"); 

返回数组,其中每个数组元素是对自己的新行的字符串。然后,你可以做

temp[1].charAt(3); 

要进入第三个字母(从零开始)的第一线(从零开始)。

+1

不错,这很直接。 –

+1

太好了。谢谢,这很接近我想要的。 –

1

简而言之,没有。您唯一的选择是创建一个包装和插入该字符串的对象,然后提供一个合适的存取方法,例如

new Paragraph(myString).get(1,12); 

请注意,您不能将索引运算符[number]用于数组以外的任何其他值。

2

你可以做这样的:

String myString = "This is a string\nconsisting of\nthree lines"; 
String myStringArr[] = myString.split("\n"); 
char myChar = myStringArr[1].charAt(12); 
2

要在字符串中的位置修改字符,你可以用比拆分StringBuffer

StringBuffer buf = new StringBuffer("hello"); 
buf.insert(3, 'F'); 
System.out.println("" + buf.toString()); 
buf.deleteCharAt(3); 
System.out.println("" + buf.toString()); 

其他为二维矩阵应该自我实现。