有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何在java中处理字符串

我想让字符串像“abc”到“prefix_a prefix_b prefix_c”

在java中如何做到这一点


共 (6) 个答案

  1. # 1 楼答案

    这是C#但应该很容易翻译成Java(但这不是一个非常聪明的解决方案)

    String input = "a b c";
    String output (" " + input).Replace(" ", "prefix_")
    

    更新

    第一个解决方案的输出中没有空格。此解决方案要求输入中不出现占位符符号(#)

    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();
    
  2. # 2 楼答案

    假设一个空间(" ")的拆分字符,可以使用^{}方法拆分String,然后每个新的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 
    

    如有必要,使用^{}将提高性能:

    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());
    

    第一个示例的唯一问题是,在最后一个标记的末尾将有一个无关的空格

  3. # 3 楼答案

    可以使用正则表达式拆分字符串,并将其与结果数组上的循环放回一起:

    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);
        }
    }
    
  4. # 4 楼答案

    希望我没有看错问题。你只是在寻找直接连接吗

    String someString = "a";
    String yourPrefix = "prefix_"; // or whatever
    String result = yourPrefix + someString;
    
    System.out.println(result);
    

    我会告诉你

    prefix_a
    
  5. # 5 楼答案

    可以使用String方法:replaceAll(String regex,String replacement)

    String s = "a xyz c";
    s = s.replaceAll("(\\w+)", "prefix_$1");
    System.out.println(s);
    

    您可能需要检查regexp以满足您的确切要求

  6. # 6 楼答案

    可以使用StringTokenizer在字符串上枚举,并使用“空格”分隔符,在循环中可以将前缀添加到枚举中的当前元素上。一句话:请参阅javadocs中的StringTokenizer

    您也可以使用正则表达式和单词边界(“\b”),但这似乎很脆弱

    另一种可能性是使用字符串。拆分以将字符串转换为字符串数组,然后在“a”、“b”和“c”数组上循环,并使用您选择的前缀作为数组元素的前缀