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

时间:2011-08-25 11:06:11

标签: java string

我只想在字符串的每个字符之间添加一个空格。任何人都可以帮我弄清楚如何做到这一点吗?

E.g。给定"JAYARAM",我需要"J A Y A R A M"作为结果。

15 个答案:

答案 0 :(得分:50)

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

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

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

ideone.com demonstration


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

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

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

ideone.com demonstration

......的文件

答案 1 :(得分:11)

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());

答案 2 :(得分:3)

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

这样的事情:

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());

答案 3 :(得分:2)

将你的String炸成chars数组,循环遍历char数组并通过一个空格继承char来创建一个新的字符串。

答案 4 :(得分:1)

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

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);

答案 5 :(得分:1)

package arrays;
import java.util.Scanner;

public class Arrays {
    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);

        int j;
        System.out.println("How much values u want to enter : -");
        j = input.nextInt();

        String array[]= new String[j];

        for(int i=0;i<j;i++)
        {
            System.out.println("Enter The index "+ (i+1) +" Value");
            array[i] = input.next();
        }
        input.close();
        System.out.println("Thanks Thats It \n");

        System.out.println("The values u Entered \n");
        for (int k=0;k<j;k++)
        {
            System.out.println("Enterd values are : - "+ array[k]);
        }
    }
}

现在我需要输入两个单词: - Sibi haseb,但它只显示sibi。我怎样才能让它们显示出来?

答案 6 :(得分:0)

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

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));
    }
}

答案 7 :(得分:0)

我正在为此目的创建一个带有动态字符

的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;
}

答案 8 :(得分:0)

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  "));
}

这可以通过以下任何一种方式输出:

哈伦德拉

哈伦德拉

答案 9 :(得分:0)

使用字符串创建一个 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

答案 10 :(得分: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

答案 11 :(得分:0)

可以在 Java 8 中使用流:

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

答案 12 :(得分:-1)

  • 从字符串
  • 创建一个char数组
  • 循环遍历数组,在数组中的每个项目之后添加空格+" "(可能除了最后一项)
  • BOOM ...做!!

答案 13 :(得分:-1)

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

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

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

答案 14 :(得分:-2)

我相信他所寻找的是mime代码运营商返回类型代码,例如%0D%0A(用于退货或换行) 和 \ u00A0(间距) 或者 $#032