Android在(zài)資源文件(res/strings.xml)定義一維數組,
發表時(shí)間:2020-12-6
發布人(rén):融晨科技
浏覽次數:63
經常我們會在(zài)資源文件(res/strings.xml)定義字符串,一維數組,那定義二維數組?直接定義二維數組沒找到(dào),可以(yǐ)間接定義。
其實很簡單,看過用過一次就(jiù)可以(yǐ)記住了(le/liǎo),一維數組估計大(dà)家經常用到(dào),但是(shì)二維數組應該比較少用,因爲(wéi / wèi)隻能間接定義二維數組。
數組的(de)定義:
數組就(jiù)是(shì)一次性定義相同數據類型的(de)一組變量數組定義。
數組的(de)特點:
1.數組是(shì)相同數據類型的(de)元素的(de)集合。
2.數組中的(de)各元素是(shì)有先後順序的(de),它們在(zài)内存中按照這(zhè)個(gè)先後順序連續存放在(zài)一起。
3.數組元素用整個(gè)數組的(de)名字和(hé / huò)它自己在(zài)數組中的(de)順序位置來(lái)表示。例如,a[0]表示名字爲(wéi / wèi)a的(de)數組中的(de)第一個(gè)元素,a[1]代表數組a的(de)第二個(gè)元素。
先來(lái)看看字符串是(shì)怎麽定義的(de)。其中,添加注釋的(de)方法:<!-- 注釋内容 -->
?
1
2
<!-- 字符串 -->
<string name=
"hello_world"
>Hello world!</string>
當然在(zài)java中這(zhè)樣定義:String a = "Hello world"; 或者String s = new String("abcdefghijklmnopqrstuvwxyz");
一、一維數組
?
1
2
3
4
5
6
7
<!-- 一維數組 -->
<string-array name=
"good"
>
<item>a</item>
<item>b</item>
<item>c</item>
<item>d</item>
</string-array>
在(zài)java代碼獲取資源中的(de)數組方法
?
1
2
3
Resources res =getResources();
// 取xml文件格式的(de)字符數組
String[] good=res.getStringArray(R.array.good);
順便看看在(zài)java中如何定義:String[] s = {"a","b","c","d"};
二、二維數組
到(dào)這(zhè)裏,你知道(dào)二維數組怎麽定義麽,是(shì)不(bù)是(shì)還要(yào / yāo)想一下呢,其實是(shì)不(bù)能直接在(zài)資源文件中定義二維數組的(de),所以(yǐ)隻能用間接的(de)方式來(lái)獲取二維數組,多維數組一樣這(zhè)樣間接來(lái)定義獲取。
?
1
2
3
4
5
<!-- 用一維數組的(de)方式間接定義二維數組 -->
<array name=
"two"
>
<item>a,b,c,d,e,f,g</item>
<item>h,i,g,k,l,m,n</item>
</array>
用java解析上(shàng)面的(de)一維數組爲(wéi / wèi)二維數組
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Resources res =getResources();
// 取xml文件格式的(de)字符數組
String[] array = res.getStringArray(R.array.two);
String[][] result = getTwoDimensionalArray(array);
/**
* 按設定規則解析一維數組爲(wéi / wèi)二維數組
* @param array
* @return
*/
private
String[][] getTwoDimensionalArray(String[] array) {
String[][] twoDimensionalArray =
null
;
for
(
int
i =
0
; i < array.length; i++) {
String[] tempArray = array[i].split(
","
);
if
(twoDimensionalArray ==
null
) {
twoDimensionalArray =
new
String[array.length][tempArray.length];
}
for
(
int
j =
0
; j < tempArray.length; j++) {
twoDimensionalArray[i][j] = tempArray[j];
}
}
return
twoDimensionalArray;
}
這(zhè)裏提供的(de)僅僅是(shì)一個(gè)方式,這(zhè)樣國(guó)際化多語言的(de)時(shí)候就(jiù)可以(yǐ)用上(shàng)場。很明顯,這(zhè)樣多了(le/liǎo)一個(gè)解析的(de)過程,慢了(le/liǎo)很多。或者在(zài)設計上(shàng)不(bù)用二維數組也(yě)行,用其他(tā)方法。可能你會覺得直接在(zài)java中定義就(jiù)好了(le/liǎo):
類似于(yú)int a[2][3]={{1,2,3},{4,5,6}};
這(zhè)裏隻是(shì)提供一種方式,不(bù)是(shì)最好,或許你還有更好的(de),請留言。
其他(tā)精彩文章文章
jQuery教程(10)-DOM樹操作之(zhī)内容setter和(hé / huò)getter方法
android學習筆記(37)使用 DatePickerDialog、TimePickerDialog
android學習筆記(36)使用AlertDialog創建自定義對話框
jQuery教程(1)-操作DOM之(zhī)操作屬性
Spring mvc新手入門(11)-返回json 字符串的(de)其他(tā)方式
更多關于(yú)android開發文章