我正在编写一个代码来计算java中字符串数组中的不同单词,然后将这些不同的单词存储在一个数组中,并计入另一个数组。 如果字符串数组类似于String [] appName = {“123”,“abc”,“Twitter”,“123”,“abc”,“123”,“Twitter”,“abc”,“abc”}; 然后在一个数组{“123”,“abc”,“Twitter”} shoud来到,而在其他阵列有数。 但是在第21行有一个例外。任何帮助都是适合的。
public class counts {
/**
* @param args
*/
public static void countWords(String[] appName){
int count =1;
int[] count1 = new int[appName.length];
String[] array= new String[12];
for(int k= 0 ;k< appName.length;k++)
{
if(array.length>0)
{
for(int l =0; l<array.length;l++)
{
if(!array[l].equals(appName[k])|| array[l]== null)
{
array[k] = appName[k];
}
}
System.out.println(array[k]);
}
}
for (int i=0; i<appName.length; i++){
String temp1 = appName[i];
//System.out.println(temp + " ");
count = 1;
for(int j=i+1; j<appName.length; j++){
String temp2= appName[j];
if(temp1.equals(temp2))
{
count++;
}
}
count1[i] = count;
System.out.println(count1[i]);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] appName = {"123", "abc", "Twitter", "123", "abc","123","Twitter", "abc","abc"};
countWords(appName);
}
}
答案 0 :(得分:0)
在操作变量
之前,应首先检查nullif(!array[l].equals(appName[k])|| array[l]== null)
变为
if(array[l]== null||!array[l].equals(appName[k]))
但使用Set<String>
会更好
答案 1 :(得分:0)
要获取唯一值,您可以执行以下操作:
Set<String> mySet= new HashSet<String>(Arrays.asList(appName));
String[] distinctAppName= mySet.toArray(new String[mySet.size()]);
答案 2 :(得分:0)
您可以尝试以下方式。这可能会对你有帮助。
public class Counts {
public static void main(String[] args) {
String[] appName = {"123", "abc", "Twitter", "123", "abc",
"123", "Twitter", "abc", "abc"};
countWords(appName);
}
public static void countWords(String[] appName) {
Map<String, Integer> map = new HashMap<>();
for (String i : appName) {
Integer val = map.get(i);
if (val == null) {
val = 0;
}
map.put(i, val + 1);
}
String[] uniqueStr = new String[map.size()];
int[] count = new int[map.size()];
int i = 0;
for (Map.Entry<String, Integer> entry : map.entrySet()) {
uniqueStr[i] = entry.getKey();
count[i] = entry.getValue();
i++;
}
System.out.println("unique String array: "+ Arrays.toString(uniqueStr));
System.out.println("String count array: "+ Arrays.toString(count));
}
}
直播demo