【发布时间】:2014-07-01 14:26:22
【问题描述】:
您好,我是使用 java 的初学者。我有以下代码,我想在其中动态初始化字符串数组 word[],该字符串由总数的大小组成。所有文档 [] 数组中的标记。 我该怎么做?
String []result = {"Shipment of Gold damaged in fire","Delivery of silver arrived in silver truck","shipment of Gold arrived in Truck"};
String []documents = new String[result.length];
for (int k =0; k<result.length; ++k){
documents[k] = result[k].toLowerCase();
System.out.println("document["+k+"] :" + documents[k]);
}
/*step 2: Tokenize all documents and create vocabulary from it*/
int i=0;
String [] word = new String [30]; // how to do dynamic allocation here
int no_of_tokens=0;
for(String document:documents){
StringTokenizer st = new StringTokenizer(document," ");
System.out.print("tokens in document"+ i +":"+ st.countTokens()+"\n");
while(st.hasMoreTokens()) {
word[no_of_tokens]=st.nextToken();
System.out.print(word[no_of_tokens] + "\n");
no_of_tokens++;
}
i++;
}
【问题讨论】:
-
Java ArrayList 自动增长。您不必担心调整它的大小:docs.oracle.com/javase/tutorial/collections/interfaces/…
-
@NicolásCarlo:这一定是功课。通常,它们带有使用此类低级类和技术的限制。只需将代码量与其正在执行的工作量进行比较即可。
-
StringTokenizer的 Javadoc 说“...... StringTokenizer 是一个遗留类,出于兼容性原因保留,尽管在新代码中不鼓励使用它......”所以我认为你应该避免它.如果您是学生并且您的老师已指示您使用它,那么请向他/她展示 Javadoc。你应该使用split来处理这样的事情,它会自动为你提供一个大小合适的数组。 -
非常感谢大家的帮助..
标签: java arrays dynamic-arrays stringtokenizer