我想使用java中的toString()方法将字符数组转换为字符串对象.这是我使用的测试代码的片段:
import java.util.Arrays;
class toString{
public static void main(String[] args){
char[] Array = {'a', 'b', 'c', 'd', 'e', 'f'};
System.out.println(Array.toString());
}
}
Run Code Online (Sandbox Code Playgroud)
原则上,它应该打印abcdef,但是每次程序执行时都会打印[C @ 6e1408或[C @ e53108]等随机乱码.我不需要替代,但想知道为什么会发生这种情况.
我想要一个循环任何类型数组并打印它们的方法,我写了以下内容:
public static <T> void printArray(T[] arr){
for(T t: arr){
System.out.print(t+" ");
}
System.out.println("");
}
Run Code Online (Sandbox Code Playgroud)
但是这个只适用于类数组,如果我有一个char[]而不是一个Character[],或者一个int[]代替一个Integer[],或者有没有办法在它们之前投射它们呢?谢谢
好的,所以我有一个我需要作为String返回的ArrayList.现在我正在使用这种方法:
List<Customer> customers = new ArrayList<>();
List<Account> accounts = new ArrayList<>();
public String customerList()
{
String list = Arrays.toString(customers.toArray());
return list;
}
public String accountList()
{
String account = Arrays.toString(accounts.toArray());
return account;
}
Run Code Online (Sandbox Code Playgroud)
这很好用,但问题是我在文本周围有括号.我得到的东西像:
Customer list:
--------------
[Name: Last, First
, Name: Last, First
, Name: Last, First
]
Run Code Online (Sandbox Code Playgroud)
当我想要这样的事情时:
Customer list:
--------------
Name: Last, First
Name: Last, First
Name: Last, First
Run Code Online (Sandbox Code Playgroud)
但是,与类似的问题不同,我不只是想逐行输出.我需要将ArrayList存储在没有括号的String中,以便我可以使用它.
编辑:应该注意的是,我希望它看起来像版本中的一个逗号是由一个不同的类中的方法放在那里:
public final String getName()
{
return getLast() + ", " + getFirst();
}
Run Code Online (Sandbox Code Playgroud)
编辑2:通过调整我给出的两个答案,我找到了一个完整的解决方案.决定哪个是"答案"很困难,因为我发现它们都很有用,但是我选择了更有用的那个. …