わかりましたので、文字列として返す必要がある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;
}
これは正常に機能しますが、問題はテキストの周りに括弧が付けられることです。私は次のようなものを得ています:
Customer list:
--------------
[Name: Last, First
, Name: Last, First
, Name: Last, First
]
このようなものが欲しいとき:
Customer list:
--------------
Name: Last, First
Name: Last, First
Name: Last, First
ただし、同様の質問とは異なり、単に行ごとに出力したくありません。 ArrayListを角かっこなしの文字列に格納して、作業できるようにする必要があります。
EDIT:見せたいバージョンの1つのコンマは、別のクラスのメソッドによって配置されていることに注意してください。
public final String getName()
{
return getLast() + ", " + getFirst();
}
編集2:与えられた2つの答えを適応させることにより、完全な解決策を見つけることができました。どちらが「答え」であるかを判断するのは困難でしたが、両方とも有用であると判断しましたが、より選択的に使用できるものを選びました。
public String customerList()
{
String list = Arrays.toString(customers.toArray()).replace(", N", "N").replace(", N", "N");
return list.substring(1,list.length()-1);
}
ブラケットを取り外すには、修正されたリターンを使用しました。コンマを削除するには、各行が「N」で始まることに注意する必要がありましたが、このアプローチの欠点は、ここで変更すると忘れてしまうとコードが壊れてしまうことです。それでも、それは私の特定の問題を解決し、私は必要に応じて両方の場所で自分自身に常に記すことができます。
「[」と「]」を空のスペースに置き換えてみてください
String list = Arrays.toString(customers.toArray()).replace("[", "").replace("]", "");
リスト/セットを文字列に直接変換し、アクションを実行できます
customers.toString().replace("[", "").replace("]", "")
可能な解決策は次のとおりです。
String account = Arrays.toString(accounts.toArray());
return account.substring(1,account.length()-1);
または、toString
メソッドをオーバーライドして、必要に応じて文字列を返しますか。
メソッドsubstring()を使用して、ArrayListのエントリを改ざんせずに開始ブラケットと終了ブラケットを削除できます。このようなものを使用して、ArrayList<String>
から文字列
String str = list.toString().substring(1, list.toString().length() - 1);
出力を次のようにしたい場合:item1、item2、item3
Arrays.toString(customers.toArray()).replace('[', ' ').replace(']', ' ').trim()
出力を次のようにしたい場合:item1 item2 item3
Arrays.toString(customers.toArray()).replace('[', ' ').replace(']', ' ').replace(',', ' ').trim()
ToString()メソッドをオーバーライドし、任意の形式で出力を表すことができます
Java 8バージョン
List<Integer> intList = new ArrayList<Integer>();
intList.add(1);
intList.add(2);
intList.add(4);
System.out.println(intList.stream().map(i -> i.toString()).collect(Collectors.joining(",")));
出力:1,2,4