[英]How to concat 2 string without + concat() and StringBuffer in java
import java.util.ArrayList;
public class ConcatString {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList list=new ArrayList();
String[] str={"Hello","World!!!!","Java"};
for(int i=0;i<str.length;i++)
{
list.add(str[i]);
}
for(int i=0;i<str.length;i++)
{
System.out.print(list.get(i));
}
}
Is this the right approach since i am new to java? 这是正确的方法,因为我是java新手吗? Concat using no inbuiltin functions or + or StringBuffer...Its an interview question Concat不使用inbuiltin函数或+或StringBuffer ......这是一个面试问题
If your string array is large, you want to use StringBuilder
, because using the +=
string concatenation is inefficient due to Java String immutability. 如果你的字符串数组很大,你想使用StringBuilder
,因为使用+=
字符串连接由于Java字符串不变性而效率低下。
String[] str={"Hello","World!!!!","Java"};
StringBuilder sb = new StringBuilder();
for(String s : str)
{
sb.append(s);
}
System.out.println(sb.toString());
Like this : 像这样 :
String[] str={"Hello","World!!!!","Java"};
String concat ="";
for(String s : str)
{
concat+=s;
}
System.out.println(concat);
你的目标是什么?。你只需复制字符串数组中的值并将其存储在ArrayList中。用于连接的代码。在java中使用字符串连接只需使用+运算符。如果你有简单的话,请不要使用复杂的逻辑备择方案。
I assume you can't use StringBuffer and you can't use StringBuilder either, as this wouldn't make sense otherwise. 我假设您不能使用StringBuffer,也不能使用StringBuilder,否则这没有意义。
You can concat two Strings after converting them to a char array: 将它们转换为char数组后,您可以连接两个字符串:
public String concat(String[] args){
int length = 0;
for (String s : args) {
length += s.length();
}
char[] result = new char[length];
int i = 0;
for (String s : args) {
s.getChars(0, s.length(), result, i);
i += s.length();
}
return new String(result);
}
Here's how you test it: 以下是测试方法:
public void testConcat() {
String[] s = new String[3];
s[0] = "abc";
s[1] = "def";
s[2] = "ghi";
System.out.print(concat(s));
/*
* Output: abcdefghi
*/
}
You could use one simple one of the following 您可以使用以下一个简单的方法
String[] str = {"Hello","World!!!!","Java"};
String concat ="";
for(String s : str)
{
concat+=s;
}
System.out.println(concat);
Or using StringBuilder
which is more efficient like this: 或者使用StringBuilder
,这样效率更高:
String[] str={"Hello","World!!!!","Java"};
StringBuilder sb = new StringBuilder();
for(String s : str)
{
sb.append(s);
}
System.out.println(sb.toString());
You dont need Arraylist for concatenation. 你不需要Arraylist来连接。 Try the below approach 尝试以下方法
String[] str={"Hello","World!!!!","Java"};
StringBuilder finalString = new StringBuilder();
for(int i=0;i<str.length;i++)
{
finalString.append(str[i]);
}
System.out.println(finalString);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.