如何在java中连接字符?
你如何连接java中的字符? 连接字符串只需要字符串之间的+
,但是使用+
连接字符会将char的值更改为ascii,从而给出数字输出。 我想做System.out.println(char1+char2+char3...
并创建一个像这样的字符串字。
我可以
System.out.print(char1); System.out.print(char2); System.out.print(char3);
但是,这只会让我获得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) :更正了字符串附加比较,因为正如cletus指出的那样,编译器会处理一系列字符串。
上面的目的是说明编译器的作用,而不是告诉你应该做什么。
我不打算回答这个问题,但这里有两个答案(正在投票!),这是完全错误的。 考虑这些表达式:
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更有效,因此最好保持原样。 编译器在这方面知道什么是最好的。
如果你有一堆字符并想将它们连成一个字符串,为什么不这样做
System.out.println("" + char1 + char2 + char3);
?
您需要通过使用字符串(即使是空字符串)启动序列来告诉编译器您要进行字符串连接。 像这样:
System.out.println("" + char1 + char2 + char3...);
您可以使用String构造函数 。
System.out.println(new String(new char[]{a,b,c}));
System.out.println(char1+""+char2+char3)
要么
String s = char1+""+char2+char3;
您需要一些描述的String对象来保存连接字符数组,因为char
类型只包含一个字符。 例如,
StringBuilder sb = new StringBuilder('a').append('b').append('c'); System.out.println(sb.toString);
公共类首字母{
public static void main (String [] args) { char initialA = 'M'; char initialB = 'P'; char initialC = 'T'; System.out.println("" + initialA + initialB + initialC ); }
}
我并不认为自己是一名Java程序员,但我只是想把它添加到这里“为了完整性”; 使用(C-inspired) String.format
静态方法:
String s = String.format("%s%s", 'a', 'b'); // s is "ab"
这是连接或附加字符的非常简单的方法
StringBuilder desc = new StringBuilder(); String Description="this is my land"; desc=desc.append(Description.charAt(i));
从字符串中选择字符并附加到字符串变量的简单示例
private static String findaccountnum(String holdername,String mobile){
char n1=holdername.charAt(0); char n2=holdername.charAt(1); char n3=holdername.charAt(2); char n4=mobile.charAt(0); char n5=mobile.charAt(1); char n6=mobile.charAt(2); String number=new StringBuilder().append(n1).append(n2).append(n3).append(n4).append(n5).append(n6).toString(); return number; }
System.out.print(a + "" + b + "" + c);
- Java重载和覆盖
- AtomicInteger weakCompareAndSet上的“虚假失败”是什么意思?
- Netty增加ChannelBuffer大小
- 将Pentaho Reporting Web前端与自定义Java / JSF应用程序集成
- Spring MVC Apache Oltu和Salesforce Integration示例OAUTH_APPROVAL_ERROR_GENERIC:身份validation期间发生了意外错误
- 在Java中安全存储密码的最佳实践是什么?
- 使用Bouncy Castle在Java中创建自定义X509 v3扩展
- 如何在Netbeans中使用-g选项进行编译?
- 关于在Java / Spring项目中组织版本化REST API代码的最佳实践(示例?)?