我有一个ArrayList,我想在其中放入很多字符串(几百个),但我不想编写一个巨大的.add()等列表。我可以将strings.xml文件中的字符串重要到ArrayList中吗?如果是这样,怎么样?
答案 0 :(得分:4)
如果您在strings.xml文件中保存了值,则可以执行以下操作:
ArrayList<String> values = new ArrayList<String>();
Collections.addAll(values, getResources.getStringArray(R.array.words));
或
List<String> values = Arrays.asList(getResources.getStringArray(R.array.words));
答案 1 :(得分:2)
以下是从项目的assets-direcytory中读取“words.txt”文件的示例。单词上的每个单词本身。
/*
* If you know the number of words at compile time,
* specify it here in the initial capacity
*/
ArrayList<String> words = new ArrayList<String>(50);
try {
InputStream is = getResources().getAssets().open("words.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
while((line = br.readLine()) != null)
{
words.add(line);
}
is.close();
} catch (IOException e) {
e.printStackTrace();
}
答案 2 :(得分:0)
将100个字符串放入文件中并从中读取。迭代使用for循环来添加这些字符串。如果你不想使用文件,用户String [] words = new String [] {“test”,“me”...“last word”}然后迭代在它上面。
答案 3 :(得分:0)
如果您有数千个单词,可能将它们放入txt文件是一个很好的解决方案。但是,如果单词的数量不是那么多,你可以再做一件事来避免多次调用add():
String [] myArray = {“stack”,“oveflow”,“java”,“array”,...}; //包含大量字符串的大型数组。
List list = Arrays.asList(myArray);
答案 4 :(得分:0)
如果xml文件采用某种特定格式,您也可以使用dom4j
轻松阅读例如:
<?xml version="1.0" encoding="UTF-8"?>
<Root>
<Address studentId="1001">
<Details name="Sam" age="" sex="M" class="10" />
</Address>
<Address studentId="1002">
<Details name="Krish" age="" sex="M" class="10" />
</Address>
</Root>
您可以使用以下代码阅读:
String xmlFileName = "D:/validation/validator/src/summa/sample.xml";
String xPath = "//Root/Address";
Document document = getDocument( xmlFileName );
List<Node> nodes = document.selectNodes( xPath );
for (Node node : nodes)
{
String studentId = node.valueOf( "@studentId" );
stringArray.add( studentId );
}