「ボブ」「ビル」「スティーブ」などの複数の文字列の連結を返すはずの文字列があります。最終結果は "bob bill steve" のようになります。Javaを使用して最後の単語の前後にスペースを追加せずにスペースを追加するにはどうすればよいですか?
			
			13427 次
		
7 に答える
            10        
        
		
Guava ライブラリの使用:
String[] names = {"bill", "bob", "steve" };
String fullString = Joiner.on(" ").join(names);
Java 8 では:
String fullString = String.join(" ", names)
    于 2012-09-29T20:35:00.350   に答える
    
    
            1        
        
		
Stringの配列を反復処理する場合は、 StringBuilderを使用することをお勧めします。このようなもの:
StringBuilder buffer = new StringBuilder();
//Assuming you have a string array;
int length = stringArray.length;
for(int index = 0; index < length; index++){
    if(index > 0)
        buffer.append(" ");
    buffer.append(stringArray[index]);
}
return buffer.toString();
    于 2012-09-29T20:32:00.707   に答える
    
    
            1        
        
		
これが私がやっている方法です
public static boolean isEmpty(String string) {
    return string == null || string.trim().length() == 0;
}
public static String concatenate(final String separator, final String... parameters) {
    StringBuilder result = new StringBuilder("");
    for (String param : parameters) {
        if (!isEmpty(param)) {
            if (result.length() > 0) {
                result.append(separator);
            }
            result.append(param);
        }
    }
    return result.toString();
}
    于 2012-09-29T20:37:35.157   に答える
    
    
            1        
        
		
次のように、文字列を繰り返し処理して連結しているように聞こえます。
StringBuilder sb = new StringBuilder();
for (String str : strings)
    sb.append(str).append(" ");  
result = sb.toString();
そして、最後にスペースができます。その場合は、String.trimメソッドを使用して余分なスペースを取り除くことができます。
result = result.trim();
trim先頭と末尾の空白をすべて削除します。
于 2012-09-29T20:28:18.177   に答える
    
    
            0        
        
		
次のように、を使用しStringBuilderて文字列を作成できます。
StringBuilder sb = new StringBuilder();
sb.append("bill").append(" ");
//and so on..
値がリストまたは配列にある場合は、forループを使用して文字列を作成できます。何かのようなもの:
foreach(String s: strings){
    sb.append(s).append(" ");
}
sb.toString.trim();
    于 2012-09-29T20:31:39.317   に答える
    
    
            0        
        
		
ループで「+」を使用するのは最善のアイデアではないため、次の方法でも試すことができます。
    String foo [] = {"asd", "bbb", "ccc"};
    StringBuilder sb = new StringBuilder();
    for (String string : foo) {
        sb.append(string).append(" ");
    }
    String result = sb.toString().trim();
    于 2012-09-29T20:34:10.060   に答える
    
    
            0        
        
		
ああ、そうです...私のお気に入りの1つ...あなたが探しているのはSeparator. これが1つです。使用方法を示すサンプルstaticユーティリティ メソッドがいくつか付属しています。さらに多くの用途があります。
public class Separator {
  private final String sepString;
  private final String firstString;
  boolean first = true;
  // Use for url params ("?","&").
  public Separator(final String first, final String sep) {
    this.sepString = sep;
    this.firstString = first;
  }
  // Use for commas etc.
  public Separator(final String sep) {
    this("", sep);
  }
  public String sep() {
    // Return empty string first and then the separator on every subsequent invocation.
    if (first) {
      first = false;
      return firstString;
    }
    return sepString;
  }
  public void reset() {
    first = true;
  }
  @Override
  public String toString() {
    return first ? "(" + sepString + ")" : sepString;
  }
  // Utilities.
  public StringBuilder addAll(final StringBuilder buf, final Iterable<?> values) {
    if (null == values) {
      return buf;
    }
    for (final Object v : values) {
      buf.append(sep()).append(v);
    }
    return buf;
  }
  public StringBuilder addAll(final StringBuilder buf, final Iterator<?> values) {
    if (null == values) {
      return buf;
    }
    while ( values.hasNext() ) {
      buf.append(sep()).append(values.next());
    }
    return buf;
  }
  public StringBuilder addAll(final StringBuilder buf, final Object... values) {
    if (null == values) {
      return buf;
    }
    for (final Object v : values) {
      buf.append(sep()).append(v);
    }
    return buf;
  }
  public StringBuilder addAll(final StringBuilder buf, final int... values) {
    if (null == values) {
      return buf;
    }
    for (final int v : values) {
      buf.append(sep()).append(v);
    }
    return buf;
  }
  public static String separate ( String separator, int [] ints ) {
    return new Separator(separator).addAll(new StringBuilder(), ints).toString();
  }
  public static String separate ( String separator, long [] longs ) {
    return new Separator(separator).addAll(new StringBuilder(), longs).toString();
  }
  public static String separate ( String separator, Object [] objs ) {
    return new Separator(separator).addAll(new StringBuilder(), objs).toString();
  }
  public static String separate ( String separator, Set them ) {
    return new Separator(separator).addAll(new StringBuilder(), them).toString();
  }
  public static String separate ( String separator, Iterator<?> i ) {
    return new Separator(separator).addAll(new StringBuilder(), i).toString();
  }
}
    于 2012-09-29T21:11:00.977   に答える