分裂向量

时间:2011-11-20 17:37:37

标签: java oop

我正在研究一个会扰乱一个单词的程序,而这个人必须猜出这个单词。

如何将字符串向量拆分为两个字符串向量?

我从文本文件中获得了一个字符串向量,其中包含一个单词:提示布局类型。该单词由提示中的冒号分隔。我需要创建两个分隔每个单词的向量,但保持与提示相关联,这样当我点击“提示”时,会出现正确的提示。

我试过创建一个循环,但我不确定应该如何声明循环。我几乎迷失在这里,任何帮助都会受到赞赏。

3 个答案:

答案 0 :(得分:1)

你走在正确的轨道上。循环遍历原始Vector并为每个单词:提示项,将它们分成两个单独的字符串并将它们添加到两个新的Vector中。

由于您将它们添加到两个向量中,因此单词和提示将在两个向量上具有相同的索引。这将使他们“联系”。

答案 1 :(得分:1)

请看String.split

您可以将单词/提示存储在具有相同索引的两个数组中,也可以将它们放在HashMapmap.put(wordA, hintA)HashMap不会保持单词的顺序;如果您确实需要维护订单,可以使用LinkedHashMap

答案 2 :(得分:0)

我只是实施了其他人所说的话。我只是存储密钥并按顺序重新计算,而不是使用LinkedHashMap。一般来说,程序的一个特点是随机提供它们。这是一个有趣的游戏,对吗?

import java.io.*;
import java.util.HashMap;
import java.util.Vector;

public class SOTest {
    public static void main(String [] args) {
            int numberofwords = 2;
            HashMap<String, String> map = new HashMap<String,String>(numberofwords);
            Vector<String> v = new Vector<String>();
            v.add("noobs:snobo");
            v.add("words:osrwd");

            String tmp; String tmpArray [];
            String keys [] = new String [numberofwords];
            for (int i = 0; i < v.size(); i++) {
                    tmp = v.get(i);
                    tmpArray = tmp.split(":");
                    map.put(tmpArray[1], tmpArray[0]);
                    keys[i] = tmpArray[1];
            }

            for (int i = 0; i < map.size(); i++) {
                    System.out.println("hint[" + i + "]: " + keys[i] + "\n\tword: " + map.get(keys[i]));
            }
    }
}

输出:

$ javac SOTest.java && java SOTest
 hint[0]: snobo
word: noobs
 hint[1]: osrwd
word: words