我正在研究一个会扰乱一个单词的程序,而这个人必须猜出这个单词。
如何将字符串向量拆分为两个字符串向量?
我从文本文件中获得了一个字符串向量,其中包含一个单词:提示布局类型。该单词由提示中的冒号分隔。我需要创建两个分隔每个单词的向量,但保持与提示相关联,这样当我点击“提示”时,会出现正确的提示。
我试过创建一个循环,但我不确定应该如何声明循环。我几乎迷失在这里,任何帮助都会受到赞赏。
答案 0 :(得分:1)
你走在正确的轨道上。循环遍历原始Vector并为每个单词:提示项,将它们分成两个单独的字符串并将它们添加到两个新的Vector中。
由于您将它们添加到两个向量中,因此单词和提示将在两个向量上具有相同的索引。这将使他们“联系”。
答案 1 :(得分:1)
请看String.split。
您可以将单词/提示存储在具有相同索引的两个数组中,也可以将它们放在HashMap中map.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