我在Java中使用StringBuffer将字符串连接在一起,如下所示:
StringBuffer str = new StringBuffer(); str.append("string value");
我想知道是否有方法(虽然我没有从文档的快速浏览中找到任何东西)或其他一些方法来添加"填充".
让我解释; 每次我在字符串中添加一些内容时,我想在最后添加一个空格,如下所示:
String foo = "string value"; str.append(foo + " ");
我有几个要追加的电话..每次,我想添加一个空格.有没有办法设置对象,以便在每次追加后自动添加空格?
编辑 -
String input StringBuffer query = new StringBuffer(); Scanner scanner = new Scanner(System.in); scanner.UseDelimiter("\n"); do { System.out.println("sql> "); input = scanner.next(); if (!empty(input)) query.append(input); if (query.toString().trim().endsWith(";")) { //run query } } while (!input.equalsIgnoreCase("exit");
我会使用StringBuilder,尽管grom建议,但这就是代码现在的样子
我认为使用辅助方法(未经测试的代码)可以更轻松地处理这个问题:
public String myMethod() { StringBuilder sb = new StringBuilder(); addToBuffer(sb, "Hello").addToBuffer("there,"); addToBuffer(sb, "it").addToBuffer(sb, "works"); } private StringBuilder addToBuffer(StringBuilder sb, String what) { return sb.append(what).append(' '); // char is even faster here! ;) }
甚至使用具有流畅界面的Builder模式(也是未经测试的代码):
public String myMethod() { SBBuilder builder = new SBBuilder() .add("Hello").add("there") .add("it", "works", "just", "fine!"); for (int i = 0; i < 10; i++) { builder.add("adding").add(String.valueOf(i)); } System.out.println(builder.build()); } public static class SBBuilder { private StringBuilder sb = new StringBuilder(); public SBBuilder add(String... parts) { for (String p : parts) { sb.append(p).append(' '); // char is even faster here! ;) } return this; } public String build() { return sb.toString(); } }
这是一篇关于这个主题的文章.
希望能帮助到你!:)
你应该使用StringBuilder.
在可能的情况下,建议首先使用此类优先于StringBuffer,因为在大多数实现中它会更快.