我正在研究一个程序,将争夺一个字,人必须猜测这个词。分裂矢量
如何将一个字符串矢量分成两个字符串矢量?
我从一个文本文件中给出了一个字符串矢量,该文本文件包含一个单词:提示类型的布局。这个词由提示中的冒号分隔。我需要创建两个向量来分隔每个单词,但保持它与提示相关联,以便当我点击“提示”时出现正确的提示。
我试过创建一个循环,但我不完全确定应该如何声明循环。我几乎失去了这里,任何帮助将不胜感激。
我正在研究一个程序,将争夺一个字,人必须猜测这个词。分裂矢量
如何将一个字符串矢量分成两个字符串矢量?
我从一个文本文件中给出了一个字符串矢量,该文本文件包含一个单词:提示类型的布局。这个词由提示中的冒号分隔。我需要创建两个向量来分隔每个单词,但保持它与提示相关联,以便当我点击“提示”时出现正确的提示。
我试过创建一个循环,但我不完全确定应该如何声明循环。我几乎失去了这里,任何帮助将不胜感激。
你在正确的轨道上。遍历你的原始矢量和每个单词:提示项目,将它们分成两个独立的字符串并将它们添加到两个新的矢量。
由于您将它们添加到两个向量中,因此单词和提示将在两个向量上具有相同的索引。这将使他们“关联”。
使用HashMap或Hashtable会更好,然后用你想要的单词进行查找。例如:'HashMap
它被标记为家庭作业,所以我假设问题要求向量。但是,如果没有,那么是的..地图会更好。 – Kal
我希望他们没有被指示使用'Vector's;他们已被弃用大约十年。 – toto2
看看String.split。
您可以将单词/提示存储在两个具有相同索引的数组中,也可以将它们放在HashMap与map.put(wordA, hintA)
之间。 A HashMap
将不保留单词的顺序;如果您确实需要维护订单,则可以使用LinkedHashMap
。
我简单地实现了别人说的。我没有使用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
明白这是功课,但我感到震惊的分配教授Java仍在使用矢量...! – berry120