如何在字符串前添加空格

8

我需要你的帮助,在一个字符串前添加空格,因为我需要将该字符串值格式化到页面的特定位置。例如:

System.out.println("          Hello Word!!");  

以上代码会在字符串前添加10个手动添加的空格,但是否有其他方式指定字符串前的空格而不是手动添加空格呢?


2
看一下 System.out.printf(); 方法。 - Codebender
1
你到底在请求什么?你想怎样指定空格? - Jon Skeet
1
因为这个问题,我研究了String类的方法,并发现没有像.NET Framework中的padLeft方法。 - Sweeper
1
@JonSkeet 我需要在字符串前保留10个空格,以便将其放置在页面的特定位置。 - 99maas
1
@Sweeper,我能做些什么来解决这个问题吗? - 99maas
显示剩余2条评论
8个回答

8
String newStr = String.format("%10s", str);

2
这是错误的,它不会添加10个空格,而是减去字符串长度为10。此外,"-"将把空格放在末尾。 - cahen
1
我需要保留字符串开头的空格。 - 99maas

8
考虑这段代码是您自己的......
    public static void main(String[] args) {

        String hello = "hello";
        Brute b = new Brute();
       System.out.println( b.addspace(1,hello));
    }

    String addspace(int i, String str)
    {       
        StringBuilder str1 = new StringBuilder();
            for(int j=0;j<i;j++)
            {
                str1.append(" ");
            }
            str1.append(str);           
            return str1.toString();         

    }

这将在字符串开头添加所需数量的空格...

只需传递您的输入字符串和所需的空格数....

使用addspace(<no_of_spaces>,<input_string>);


3
其他解决方案可以在一两行内完成所有操作,我不同意这应该是被接受的解决方案。 - cahen

4
String str = "Hello Word!!";
String.format("%1$" + (10 + str.length()) + "s", str);

结果:

|          Hello Word!!|

添加了10个空格


1

你可以编写自己的函数:

public static void main(String[] args) {
        String myString = "Hello Word!!";
        System.out.println(getWhiteSpace(10)+myString);
    }

    private static String getWhiteSpace(int size) {
        StringBuilder builder = new StringBuilder(size);
        for(int i = 0; i <size ; i++) {
            builder.append(' ');
        }
        return builder.toString();
    }

1
这可能对你有用,
    String s = "%s Hellow World!";
    StringBuilder builder = new StringBuilder();
    for(int i=0;i<10;i++){
        builder.append(" ");
    }

    System.out.println(s.format(s,builder.toString()));

你可以更改for循环中空格的数量。

1
import java.io.*;
import java.util.*;
class spaceBeforeString
{
    public static void main(String args[])
    {
        String str="Hello";    

        for(int i=0;i<10;i++)
        {
                str=" "+str;
        }
        System.out.println(str);
    }
}

仅使用for循环,我们就可以实现10个空格。 - Bhanupratap Singh

1
import java.util.*;
import java.io.*;

class AddSpaceDemo
{
    String str;
    int noOfSpaces;
    Scanner sc=new Scanner(System.in);

    void getInput()
    {

        System.out.println("Enter the string before which the space is to be added: ");
        str=sc.next();

        System.out.println("Enter the no. of spaces to be added before the string: ");
        noOfSpaces=sc.nextInt();

    }

    String addSpaceBefore()
    {
        for(int i=0;i<noOfSpaces;i++)
        {
            str=" "+str;
        }
        return str;
    }




}



class AddSpace
{

    public static void main(String args[])
    {
        String s;
        AddSpaceDemo a=new AddSpaceDemo();
        a.getInput();
        s=a.addSpaceBefore();
        System.out.println("String after adding whitespace before string: ");
        System.out.println(s);

    }
}

这可以是另一种做法。 - Bhanupratap Singh

0
我正在制作一个基本的Java POS系统。您可以设置纸张宽度上适合多少个字符,并将其左右对齐。
公共类Main {
int width = 32;


public static void main(String[] args) {


    String dash = "--------------------------------";
    String item = "COMPANY NAME";
    String price = "00.00";
    String string = alignment(item, price);


    String description = "123-456-7890";
    String tax = "0.00";
    String string2 = alignment(description, tax);


    System.out.println(dash);
    System.out.println(string);
    System.out.println(string2);

}


private static String alignment(String item, String price) {

    String s = "";

    s += item;

    int x = 0;
    while(x < width - item.length() - price.length()) {
        s += " ";
        x++;
    }

    s += price;

    return s;
}

}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接