2013-07-10 75 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()); 

其他爲二維矩陣應該自我實現。