Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.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
Java 是否有一种方法可以使用一组修改过的索引值重新排列给定字符串中的字符?_Java_String_Parsing_Indexing - Fatal编程技术网

Java 是否有一种方法可以使用一组修改过的索引值重新排列给定字符串中的字符?

Java 是否有一种方法可以使用一组修改过的索引值重新排列给定字符串中的字符?,java,string,parsing,indexing,Java,String,Parsing,Indexing,假设我有字符串:“波兰”。其索引为:P=0,O=1,L=2,I=3,S=4,H=5 我想能够像这样打字 " word1.arrangebyindex(051423) " 并且有相等的磷 我希望能够键入索引值的任意组合,并将其重新排列为一个新词 我正在尝试编写一个程序,用以下方式重新排列给定的单词: 单词的第一个字符后面跟着单词的最后一个字符,后面跟着第二个字符,然后是单词的最后一个字符,依此类推。如果给定单词的字符数为奇数,则再次重复中间的字符。例如,给定单词“mouse”,它应该被编码为“m

假设我有字符串:“波兰”。其索引为:P=0,O=1,L=2,I=3,S=4,H=5

我想能够像这样打字

" word1.arrangebyindex(051423) "
并且有相等的磷

我希望能够键入索引值的任意组合,并将其重新排列为一个新词

我正在尝试编写一个程序,用以下方式重新排列给定的单词:


单词的第一个字符后面跟着单词的最后一个字符,后面跟着第二个字符,然后是单词的最后一个字符,依此类推。如果给定单词的字符数为奇数,则再次重复中间的字符。例如,给定单词“mouse”,它应该被编码为“meosu”

,我建议制作一个hashmap,允许用户输入字母,字母是键,数字是值

一旦将所有字母与数字关联为键和值(如p:0和H:5),就可以使用hashmap根据给定的数字创建字符串

按数字分解每个数字(请注意,如果一个单词与多个数字关联,则更难实现),并根据您调用的数字添加到字符串中

以下是hashmap api:


只需查看方法摘要并尝试这些。我怀疑您需要从api的其余部分获得更多信息。

如果您使用HashMap,则键为整数,值应为字符,因为如果string=APPLE则为0-A1-P2-P3-L4-E

或者你应该这样做:

public class ModifiedIndex {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String str = in.nextLine();
        char [] ch = str.toCharArray();
        String s ="";
        int i=0;
        int j = str.length()-1;
        if(str.length()%2 == 0)
        {
            for(int k = 0; k < str.length()/2; k++)
            {   
                    s = s+ch[i] +ch[j];
                    i++;
                    j--;

            }
        }
        else
        {
            for(int k = 0; k < str.length(); k++)
            {   if(i<=j)
                {
                    s = s+ch[i] +ch[j];
                    i++;
                    j--;
                }

            }

        }
    }

}
公共类修改索引{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
字符串str=in.nextLine();
char[]ch=str.toCharArray();
字符串s=“”;
int i=0;
int j=str.length()-1;
如果(str.length()%2==0)
{
对于(int k=0;k{如果(i)你的问题不清楚;而且它缺少每个新手都会挨打的一个根本原因:没有证据表明你自己在尝试解决问题。建议:访问网站,像一个完全的新手一样,再次阅读关于如何/问什么的内容。绝对不是这样。但回答你的问题:是的,当然。大多数事情都是可能的例如,假设“mouseit”这个词应该被编码为“meosu”-嘿,“i”和“t”发生了什么事?这个例子正确吗?GhostCat-我不感谢你的评论。我问这个问题很匆忙,因此没有时间好好问。我会更新我的问题