首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >分裂向量

分裂向量
EN

Stack Overflow用户
提问于 2011-11-20 17:37:37
回答 3查看 3.6K关注 0票数 3

我正在做一个程序,这个程序会乱动一个单词,而这个人必须猜到这个词。

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

我从一个文本文件中得到一个字符串向量,该文本文件中有一个单词:提示类型的布局。这个词与提示用冒号隔开。我需要创建两个向量,将每个单词分开,但将其与提示相关联,这样当我单击“提示”时,就会出现正确的提示。

我尝试过创建一个循环,但我不太确定应该如何描述这个循环。我在这里迷路了,任何帮助都会很感激的。

EN

回答 3

Stack Overflow用户

发布于 2011-11-20 17:43:17

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

由于要将它们添加到两个向量中,所以单词和提示将在两个向量上具有相同的索引。这将保持他们的“联系”。

票数 1
EN

Stack Overflow用户

发布于 2011-11-20 17:51:07

看看String.split

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

票数 1
EN

Stack Overflow用户

发布于 2011-11-20 18:55:24

我只是执行了其他人说的话。我没有使用LinkedHashMap,而是动态地存储密钥,并按顺序重新计算它们。这应该是你的程序的一个特点,但随机给他们。那将是一场有趣的游戏,对吧?

代码语言:javascript
运行
复制
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]));
            }
    }
}

产出:

代码语言:javascript
运行
复制
$ javac SOTest.java && java SOTest
 hint[0]: snobo
word: noobs
 hint[1]: osrwd
word: words
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8203343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档