繁体   English   中英

在Java中的字符串的字符之间添加空格?

[英]Add spaces between the characters of a string in Java?

我只想在字符串的每个字符之间添加一个空格。 谁能帮我弄清楚如何做到这一点?

例如,给定"JAYARAM" ,我需要"JAYARAM"作为结果。

除非您想遍历字符串并“手动”执行此操作,否则您可以这样解决:

yourString.replace("", " ").trim()

这将用空格替换所有“空子字符串”,然后修剪掉前导/尾随空格。

ideone.com 演示


使用正则表达式的替代解决方案:

yourString.replaceAll(".(?=.)", "$0 ")

基本上它说“用字符本身后跟一个空格替换所有字符(最后一个除外)”

ideone.com 演示

文档...

StringBuilder result = new StringBuilder();
for (int i = 0; i < input.length(); i++) {
   if (i > 0) {
      result.append(" ");
    }

   result.append(input.charAt(i));
}

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

迭代字符串的字符,并在存储在新数组/字符串中时,您可以在附加每个字符之前附加一个空格。

像这样的事情:

StringBuilder result = new StringBuilder();

for(int i = 0 ; i < str.length(); i++)
{
   result = result.append(str.charAt(i));
   if(i == str.length()-1)
      break;
   result = result.append(' ');
}

return (result.toString());

将您的字符串炸成字符数组,遍历字符数组并通过在字符后面加上一个空格来创建一个新字符串。

这适用于在您的字符串中的任何特定位置插入任何字符。

public static String insertCharacterForEveryNDistance(int distance, String original, char c){
    StringBuilder sb = new StringBuilder();
    char[] charArrayOfOriginal = original.toCharArray();
    for(int ch = 0 ; ch < charArrayOfOriginal.length ; ch++){
        if(ch % distance == 0)
            sb.append(c).append(charArrayOfOriginal[ch]);
        else
            sb.append(charArrayOfOriginal[ch]);
    }
    return sb.toString();
}

然后这样调用

String result = InsertSpaces.insertCharacterForEveryNDistance(1, "5434567845678965", ' ');
        System.out.println(result);

我正在为此目的创建一个具有动态字符的 java 方法

public String insertSpace(String myString,int indexno,char myChar){
    myString=myString.substring(0, indexno)+ myChar+myString.substring(indexno);
    System.out.println(myString);
    return myString;
}

使用字符串创建一个StringBuilder并使用其insert重载方法之一:

StringBuilder sb = new StringBuilder("JAYARAM");
for (int i=1; i<sb.length(); i+=2)
    sb.insert(i, ' ');
System.out.println(sb.toString());

上面的打印:

J A Y A R A M
public static void main(String[] args) {
    String name = "Harendra";
    System.out.println(String.valueOf(name).replaceAll(".(?!$)", "$0  "));
    System.out.println(String.valueOf(name).replaceAll(".", "$0  "));
}

这给出了以下使用上述任何一种的输出:

哈恩德拉

哈恩德拉

一种简单的方法是将字符串拆分为每个字符并使用空格作为分隔符连接各个部分。

演示:

public class Main {
    public static void main(String[] args) {
        String s = "JAYARAM";
        s = String.join(" ", s.split(""));
        System.out.println(s);
    }
}

输出:

J A Y A R A M

在线演示

可以在 java 8 中使用流:

String input = "JAYARAM";
input.toString().chars()
    .mapToObj(c -> (char) c + " ")
    .collect(Collectors.joining())
    .trim();
// result: J A Y A R A M

这与用逗号连接数组的问题相同。 此版本仅在字符之间正确生成空格,并避免在循环内出现不必要的分支:

String input = "Hello";
StringBuilder result = new StringBuilder();
if (input.length() > 0) {
    result.append(input.charAt(0));
    for (int i = 1; i < input.length(); i++) {
        result.append(" ");
        result.append(input.charAt(i));
    }
}
  • 从您的字符串创建一个字符数组
  • 循环遍历数组,在数组中的每一项之后添加一个空格+" " (可能除了最后一项)
  • 砰……完成了!!

如果您使用 stringbuilder,则在创建对象时初始化长度会很有效。 长度将是 2*lengthofString-1。

或者创建一个字符数组并将其转换回字符串会产生相同的结果。

A并且当您编写一些代码时,请确保您也编写了一些测试用例,这将使您的解决方案完整。

我相信他正在寻找的是 mime 代码载体返回类型代码,例如 %0D%0A(用于返回或换行符)和 \ (用于间距)或 $#032

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM