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));
}
}
这是正确的方法,因为我是java新手吗? Concat不使用inbuiltin函数或+或StringBuffer ......这是一个面试问题
答案 0 :(得分:3)
如果你的字符串数组很大,你想使用StringBuilder
,因为使用+=
字符串连接由于Java字符串不变性而效率低下。
String[] str={"Hello","World!!!!","Java"};
StringBuilder sb = new StringBuilder();
for(String s : str)
{
sb.append(s);
}
System.out.println(sb.toString());
答案 1 :(得分:1)
像这样:
String[] str={"Hello","World!!!!","Java"};
String concat ="";
for(String s : str)
{
concat+=s;
}
System.out.println(concat);
答案 2 :(得分:0)
你的目标是什么?。你只需复制字符串数组中的值并将其存储在ArrayList中。用于连接的代码。在java中进行字符串连接只需使用+ operator.Don&#39; t go for complex logic ,如果你有简单的替代品。
答案 3 :(得分:0)
我假设你不能使用StringBuffer而你也不能使用StringBuilder,否则就没有意义。
将两个字符串转换为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);
}
以下是测试方法:
public void testConcat() {
String[] s = new String[3];
s[0] = "abc";
s[1] = "def";
s[2] = "ghi";
System.out.print(concat(s));
/*
* Output: abcdefghi
*/
}
答案 4 :(得分:-1)
您可以使用以下一个简单的
String[] str = {"Hello","World!!!!","Java"};
String concat ="";
for(String s : str)
{
concat+=s;
}
System.out.println(concat);
或使用效率更高的StringBuilder
:
String[] str={"Hello","World!!!!","Java"};
StringBuilder sb = new StringBuilder();
for(String s : str)
{
sb.append(s);
}
System.out.println(sb.toString());
答案 5 :(得分:-1)
你不需要Arraylist进行连接。尝试以下方法
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);