【问题标题】:How to add whichever character between every character of a premade String? [duplicate]如何在预制字符串的每个字符之间添加任何字符? [复制]
【发布时间】:2016-05-21 07:11:31
【问题描述】:

如何在预制字符串的每个字符之间添加任何字符? (JAVA)

例如,我有字符串“Hello world”,我必须在字符串的每个字符之间添加“_”。

我可以使用任何功能或有用的代码吗?

我必须做一个让我输出“H_e_l_l_o_ _w_o_r_l_d”的算法

这就是我所拥有的:

public String example(String s) {
        String s2 = null;
        for(int i = 0; i < s.length(); i++){
            s2 += s.charAt(i) + (((i+1) == 0) ? " " : "-");     
            }
        return s2;
     }

我在主类中的输出是:

nullH-e-l-l-o- -w-o-r-l-d-

不知道为什么

【问题讨论】:

  • 那么你尝试了什么?
  • 欢迎来到 StackOverflow!为了帮助您解决问题,请发布一个最低限度的完整示例,然后询问您遇到问题的部分。 stackoverflow.com/help/mcve
  • 公共字符串示例(字符串 s){ 字符串 s2 = null; for(int i = 0; i
  • 所以显而易见的解决方案是不要以 null 开头:String s2 = null;。而是以非空空字符串 String s2 = ""; 开头
  • 作为副本关闭。

标签: java string algorithm


【解决方案1】:

这看起来像是家庭作业。所以,我不会直接写出所有的代码。

String = "hello world";

说,有一个变量len = str.length() - 1。我们不是从索引0 开始,而是从len - 1 开始我们的for 循环。字符'd' 位于索引len 处,必须在此之前插入'_'。这可以通过将字符串设置为 str = str.substring(0,i) + "_" + str.substring(i+1);

来完成

您必须使用从 len - 1 开始的 for 循环,直到到达的索引为 0

现在,在每一次迭代中,当您插入一个将 str 分配给 str.substring(0,i) + "_" + str.substring(i+1); 的字符时,您会创建一个新的字符串对象,这绝对是一种可怕的风格。这可以通过使用StringBuilder 来解决。

这样说清楚了吗?

以后,请不要在未完成任何工作的情况下发布问题。该社区旨在帮助您解决解决方案中可能遇到的问题,而不是为您编写解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多