回答
假定的空間(" "
),則String
可以使用split
方法被分割的分割字符,那麼每個新String
可以具有prefix_
所附,然後再連接到回String
:
String[] tokens = "a b c".split(" ");
String result = "";
for (String token : tokens) {
result += ("prefix_" + token + " ");
}
System.out.println(result);
輸出:
prefix_a prefix_b prefix_c
使用如有必要,一個StringBuilder
會提高性能:
String[] tokens = "a b c".split(" ");
StringBuilder result = new StringBuilder();
for (String token : tokens) {
result.append("prefix_");
result.append(token);
result.append(" ");
}
result.deleteCharAt(result.length() - 1);
System.out.println(result.toString());
第一個示例唯一的問題是在最後一個標記末尾會有一個無關的空格。
希望我不會誤解這個問題。你只是在尋找直接連接?
String someString = "a";
String yourPrefix = "prefix_"; // or whatever
String result = yourPrefix + someString;
System.out.println(result);
會告訴你
prefix_a
woops。以爲你在那裏有「一個」「B」「C」。所以是的,首先使用String.split來獲取片斷。 – JustJeff 2009-06-10 01:17:30
這是C#,但應該很容易轉換到Java(但它不是一個非常聰明的解決方案)。
String input = "a b c";
String output (" " + input).Replace(" ", "prefix_")
UPDATE
第一溶液具有在輸出沒有空格。該解決方案需要在輸入中沒有佔位符號(#)。
String output = ("#" + input.Replace(" ", " #")).Replace("#", "prefix_");
使用StringBuilder
可能更有效。
String input = "a b c";
String[] items = input.Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries);
StringBuilder sb = new StringBuilder();
foreach (String item in items)
{
sb.Append("prefix_");
sb.Append(item);
sb.Append(" ");
}
sb.Length--;
String output = sb.ToString();
反對的原因?語言不容忍? :D – 2009-06-10 01:23:56
可以使用的StringTokenizer枚舉在你的字符串,以「空間」分隔符,並在你的循環,你可以在你的枚舉添加前綴到當前元素。底線:請參閱javadoc中的StringTokenizer。
你也可以用正則表達式和單詞邊界(「\ b」)來做,但這看起來很脆弱。
另一種可能性是使用String.split將字符串轉換爲字符串數組,然後遍歷「a」,「b」和「c」數組,並在數組元素前加上前綴選擇。
您可以使用正則表達式分割字符串,並與環一起放回它產生的陣列上:
public class Test {
public static void main (String args[]) {
String s = "a b c";
String[] s2 = s.split("\\s+");
String s3 = "";
if (s2.length > 0)
s3 = "pattern_" + s2[0];
for (int i = 1; i < s2.length; i++) {
s3 = s3 + " pattern_" + s2[i];
}
System.out.println (s3);
}
}
您可以使用String方法:replaceAll(String regex,String replacement)
String s = "a xyz c";
s = s.replaceAll("(\\w+)", "prefix_$1");
System.out.println(s);
您可能需要啾啾正則表達式以滿足您的確切要求。
- 1. 在java中如何處理超級?
- 2. 如何處理java.lang.ArrayIndexOutOfBoundsException:0在java中
- 3. 如何在java中處理PSQLException?
- 4. 如何在java中處理日期
- 5. 在Java中如何處理投射?
- 6. 如何在java中處理main()?
- 7. 如何在java中處理json響應?
- 8. 如何處理在Java代碼中
- 9. 如何在Java中處理表單?
- 10. 如何在java中處理sql異常?
- 11. 如何在android中處理隊列? java
- 12. 在java中taillistener,如何處理
- 13. 如何在java中處理聲音?
- 14. 如何在Java中處理大數據?
- 15. 如何在Java異常處理中處理throws子句?
- 16. 如何處理未處理在node.js中
- 17. Java - 如何處理OutOfMemoryError?
- 18. Java:如何僅處理SIGTERM?
- 19. Java:如何處理圖形?
- 20. 如何處理java線程
- 21. 處理Java中
- 22. 處理在Java
- 23. Java註釋處理 - 如何處理已處理的代碼?
- 24. 如何處理java中的prolog列表
- 25. 如何處理java中的ClassCastException
- 26. 如何處理Java中的文件集
- 27. 如何處理Java中的多個流?
- 28. 如何處理java代碼中的getParameter()?
- 29. 如何處理java中的回調
- 30. 如何處理CSV文件在Java
您可以使用.trim()將空間留在最後,因爲該要求並不表示存在前導或尾隨空格。 – ninesided 2009-06-10 01:37:56
@nnesided:這是一個好主意,謝謝你的建議:) – coobird 2009-06-10 01:44:40