簡體   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