有 Java 编程相关的问题?

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

如何在java中连接字符?

如何在java中连接字符?串接字符串只需要在字符串之间使用+,但是使用+串接字符会将字符的值更改为ascii,从而提供数字输出。我想做System.out.println(char1+char2+char3...并创建一个像这样的字符串

我可以

System.out.print(char1);
System.out.print(char2);
System.out.print(char3);

但是,这只会让我在一行字符。我需要一根绳子。任何帮助都将不胜感激

谢谢


共 (6) 个答案

  1. # 1 楼答案

    你想把它们串起来吗

    String s = new StringBuilder().append(char1).append(char2).append(char3).toString();
    

    注意

    String b = "b";
    String s = "a" + b + "c";
    

    实际上编译成

    String s = new StringBuilder("a").append(b).append("c").toString();
    

    编辑:正如litb指出的,您也可以这样做:

    "" + char1 + char2 + char3;
    

    这可归结为以下几点:

    new StringBuilder().append("").append(c).append(c1).append(c2).toString();
    

    编辑(2):更正了字符串追加比较,因为正如克莱特斯指出的那样,一系列字符串是由编译器处理的

    以上内容的目的是说明编译器的功能,而不是告诉您应该做什么

  2. # 2 楼答案

    我本不打算回答这个问题,但这里有两个答案(正在投票!)这完全是错误的。请考虑这些表达式:

    String a = "a" + "b" + "c";
    String b = System.getProperty("blah") + "b";
    

    第一个在编译时进行评估。第二个在运行时进行评估

    因此,绝不用StringBuilder、StringBuffer等替换常量连接(任何类型)。仅在涉及变量的情况下使用,通常仅在追加大量操作数或在循环中追加时使用

    如果字符是常量,则可以:

    String s = "" + 'a' + 'b' + 'c';
    

    如果它们不是,请考虑如下:

    String concat(char... chars) {
      if (chars.length == 0) {
        return "";
      }
      StringBuilder s = new StringBuilder(chars.length);
      for (char c : chars) {
        s.append(c);
      }
      return s.toString();
    }
    

    作为一个合适的解决方案

    然而,有些人可能会倾向于优化:

    String s = "Name: '" + name + "'"; // String name;
    

    对此:

    String s = new StringBuilder().append("Name: ").append(name).append("'").toString();
    

    虽然这是出于好意,但底线是不要

    为什么?正如另一个正确的答案所指出的:编译器为您完成这项工作。因此,在自己做这件事时,你不允许编译器优化代码,也不取决于这是否是一个好主意,代码更难阅读,而且不必要地复杂

    对于低级优化,编译器比您更擅长优化代码

    让编译器完成它的工作。在这种情况下,最糟糕的情况是编译器隐式地将代码更改为您编写的代码。连接2-3个字符串可能比构造StringBuilder更有效,因此最好保持原样。编译器知道在这方面什么是最好的

  3. # 3 楼答案

    你可以使用String constructor

    System.out.println(new String(new char[]{a,b,c}));
    
  4. # 4 楼答案

    System.out.println(char1+""+char2+char3)
    

    或者

    String s = char1+""+char2+char3;
    
  5. # 5 楼答案

    如果你有一堆字符,想把它们串成一条线,为什么不呢

    System.out.println("" + char1 + char2 + char3); 
    

    ?

  6. # 6 楼答案

    你需要告诉编译器你想通过一个字符串,甚至是一个空的字符串来启动序列来进行字符串连接。就像这样:

    System.out.println("" + char1 + char2 + char3...);