Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在for java循环中创建表_Java_For Loop_Dictionary_Hashmap_Jtable - Fatal编程技术网

在for java循环中创建表

在for java循环中创建表,java,for-loop,dictionary,hashmap,jtable,Java,For Loop,Dictionary,Hashmap,Jtable,我有两个数组,它们的值是单词,第一个表中的每个单词都与一个文本(字符串)相关联,现在第二个表中的每个单词都显示了文本(字符串)中重复的次数(int)。预期的表格应如下所示: 这是我到目前为止编写的代码: keyW = txtKeyword.getText(); search = textField.getText(); System.out.println("String for car = " + search); System.out.println("String keyword = "

我有两个数组,它们的值是单词,第一个表中的每个单词都与一个文本(字符串)相关联,现在第二个表中的每个单词都显示了文本(字符串)中重复的次数(int)。预期的表格应如下所示:

这是我到目前为止编写的代码:

keyW = txtKeyword.getText();
search = textField.getText();
System.out.println("String for car = " + search);
System.out.println("String keyword = " + keyW);
btnUpload.setEnabled(false);
btnNewButton_1.setEnabled(false);
btnNewButton.setEnabled(false);
txtKeyword.setEnabled(false);
textField.setEditable(false);

//waitLabel.setVisible(true);
int iar = 0;
int item;

Map<String, Integer> dictionary = new HashMap<String, Integer>();

String[] searchArray = search.split(",");
String[] itemsFromArray1 = new String[searchArray.length];
//Keyword1 = ("Searched Key"+ "\r\n\t ");
//listKeys.add(Keyword1);           
for (iar = 0; iar < searchArray.length; iar++) {
    itemsFromArray1[iar] = searchArray[iar].trim();
    Keyword1 = (searchArray[iar]);
    //listKeys.add(Keyword1);
}

String[] items = keyW.split(",");

for (item = 0; item < searchArray.length; item++) {

    WebDriver driver = new HtmlUnitDriver();
    ((HtmlUnitDriver) driver).setJavascriptEnabled(true);

    driver.get("https://en.wikipedia.org/wiki/" + searchArray[item]);
    tstr1 = driver.findElement(By.xpath("//*[@id='content']")).getText();
    driver.quit();

    String[] itemsFromArray = new String[items.length];
    for (int i = 0; i < items.length; i++) {
        itemsFromArray[i] = items[i].trim();

    }
    for (String string : itemsFromArray) {

        int i = countWords(tstr1, string);

        dictionary.put(searchArray[item].concat(string), i);

        System.out.println("ARRAY " + dictionary);

    }
}

private static int countWords(String tstr1, String string) {
    tstr1 = tstr1.toLowerCase();
    string = string.toLowerCase();
    int posCount = 0;
    String positive = string;
    Pattern positivePattern = Pattern.compile(positive);
    Matcher matcher = positivePattern.matcher(tstr1);
    while (matcher.find()) {
        posCount++;
    }
    return posCount;
}
存在重复的值。如何使显示像表格一样?

尝试使用以下方法:

Map tableMap=newhashmap();
将密钥保存为:

tableMap.put("Word1-Search1",23);
使用此选项,您将始终拥有每个键的唯一组合


我希望您不想将数据存储在数据结构中?相反,您应该使用二维
字符串
数组来存储它。

回答您的最新更新:

我想你因为这条线得到了多份拷贝

dictionary.put(searchArray[item].concat(string), i);

我认为
concat
正在应用于整行元素。我会使用我的调试器来分析这一点,看看
searchArray[item]
的值是什么,以及
string
的值是什么。

谢谢Danyal,但是当我尝试放置两个键时
“Word1-Search1”
出现错误,有没有办法声明一个包含两个键的表。谢谢不要把2个键放在main:),连接字符串并将其添加为一个字符串它在控制台中显示正确的值,但相同的字符串正在重复,如何像表格一样格式化而不重复,我更新了答案,请看一看。ThanksName字符串无法重复..该键在HashMaps中是唯一的非常感谢您的帮助,请告诉我是否有一种方法使输出看起来像我上面描述的表。非常感谢。亲爱的Craig,预期的输出是我有一个表,
searchArray[item]
是列的名称,
string
是行的名称,
I
是表的值。
dictionary.put(searchArray[item].concat(string), i);