为了账号安全,请及时绑定邮箱和手机立即绑定

操作字符串以创建具有相应索引的新字符串

操作字符串以创建具有相应索引的新字符串

撒科打诨 2021-06-08 13:01:57
输入 :have anic edayString[] words = sb.toString().split("//s");    StringBuilder sbFinal = new StringBuilder();    for(int i=0;i<words[0].length() ;i++){        for(int j=0;j<words.length;j++){            sbFinal.append(words[j].charAt(i));        }    }    return sbFinal.toString() ;输出 : have anic eday我有许多字符串,我需要将它们转换为打印一组新字符串(空格分隔)的形式,这些字符串由给定的每个字符串的各自字符形成。所需的输出:hae 和 via ecy例如,我们有 3 个 4 个字符的单词,我们想要 4 个 3 个字符的单词。have anic eday =>hae and via ecy我们从所有 3 个单词中选择第一个字符来制作新的第一个单词。我使用了上面显示的代码,但它将输入打印为输出本身。
查看完整描述

2 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

虽然得到了回答,但我编写了一个与您最初设计的更相似的版本,只是使用 sysout 而不是 return,但是根据您的需要进行更改,或者只是调整 .split() 行:


String sb = "have anic eday";

String[] words = sb.split("\\s"); //you need to use BACKWARDSLASH "\\s" to get it to work.

StringBuilder sbFinal = new StringBuilder();



for (int i = 0; i < words[0].length(); i++) {

    for (int j = 0; j < words.length; j++) {

        sbFinal.append(words[j].charAt(i));

    }

    sbFinal.append(" ");

}


System.out.println(sbFinal.toString());

你用“//s”分割,但是“”或“\\s”似乎工作得很好。


查看完整回答
反对 回复 2021-06-10
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

使用简单的for循环和数组:


public class SO {


    public static void main(String args[]) {

        String input = "have anic eday ";


        // Split the input.

        String[] words = input.split("\\s");

        int numberOfWords = words.length;

        int wordLength = words[0].length();


        // Prepare the result;

        String[] result = new String[wordLength];


        // Loop over the new words.

        for (int i = 0; i < wordLength; i++) {

            // Loop over the characters in each new word.

            for (int j = 0; j < numberOfWords; j++) {

                // Initialize the new word, if necessary.

                String word = result[i] != null ? result[i] : "";


                // Append the next character to the new word.

                String newChar = Character.toString(words[j].charAt(i));

                result[i] = word + newChar;

            }

        }


        for (String newWord : result) {

            System.out.println(newWord);

        }

    }

}

输出:


hae

and

via

ecy



查看完整回答
反对 回复 2021-06-10
  • 2 回答
  • 0 关注
  • 136 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信