【问题标题】:Easiest way to do this : Put a String into the middle of a String for various lengths最简单的方法:将一个字符串放在一个字符串的中间,长度不一
【发布时间】:2019-10-08 06:46:12
【问题描述】:

试图在不改变字符串的情况下以某种方式拆分字符串 字符串(字符串嵌入,字符串有效负载) 结构体。

System.out.println(embedCenter("<<>>", "Yay")); // => <<Yay>>

这就是它的外观,因此将"&lt;&lt;&gt;&gt;" 用于嵌入,"Yay" 用于有效负载应该返回&lt;&lt;Yay&gt;&gt;,但是对于"()" 嵌入和"Yay" 有效负载它应该返回"(Yay)" 和@987654328 @embed 和 "Yay" payload 它应该返回 ":Yay-)"

所以我刚刚开始学习,并且有点卡在这个问题上 - 我尝试过做子字符串,但虽然我可以获得其中一个结果,但我无法找到一种方法来使用相同的方法获得所有这些结果。

public static String embedCenter(String embed, String payload) {
    return ""; // 
}

public static void main(String[] args) {
    System.out.println(embedCenter("<<>>", "Yay")); // => <<Yay>>
    System.out.println(embedCenter("()", "Yay")); // => (Yay)
    System.out.println(embedCenter(":-)", "Example")); // :Example-)

【问题讨论】:

  • 先把问题分成小块,然后一步步解决。
  • “我试过做子串”——在哪里?请发布您的尝试。
  • 字符串子嵌入 = embed.substring(0,2);字符串finembed = embed.substring(2,4);返回子嵌入 + 有效载荷 + 精细嵌入;这基本上适用于“>”“Yay”,如果我输入(0,1)和(1,2)它会解决它“()”如果我输入(0,1)和(1,3) ) 它为“:-)”解决了这个问题,但是我不确定在新符号出现之前(这将解决我的问题)或在一种符号结束之后是否有用于拆分嵌入字符串的命令。还尝试将其与 boolean b = embed.contains("
  • 嘿@user12177474,欢迎来到 StackOverflow :) 你已经很好地解释了你的问题,但我们仍然缺少确切的问题陈述:你需要将第二个字符串嵌入 第一个字符串的中间?在这种情况下,当第一个字符串中的符号数不偶数时怎么办?我的意思是,你应该首先用词彻底来描述算法,然后你才能使用编程解决方案。

标签: java string embedding


【解决方案1】:

好的,我做到了,我觉得太复杂了,只需将字符串除以 length()/2 就真的很简单,效果很好。感谢您的意见!

    int length = embed.length();
    String subembed = embed.substring(0,embed.length()/2);
    String finembed = embed.substring(embed.length()/2);
    return subembed + payload + finembed;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-08
    • 1970-01-01
    • 2020-06-12
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    • 2022-01-06
    相关资源
    最近更新 更多