[英]List to String using toString() in java
我有ArrayList包含字符串。 我想檢查字符是否存在於arraylist中。 我正在使用以下代碼。
if(list.toString.contains(char))
{
// enter code here
}
我可以使用此toString()方法嗎? 缺點是什么?
使用List.toString()進行搜索將是一個非常糟糕的主意。 您的代碼應該看起來像這樣:
Iterator it = list.getIterator();
char searchChar = 'S';
while (it.hasNext())
{
String s = (String) it.next();
if ( s.contains(searchChar) )
{
//Found the char!
}
}
不,您不能繼續使用arraylist.toString(),因為它不會提供String內容的字符串表示形式。
更好的方法是遍歷列表和檢查,如下所示。
for(String detail:listString){
if(detail.contains('X')) //replace 'X' with your character
{
// do somethng
}
}
list.toString()
為您提供列表的字符串表示形式,因此它包含更多的字符,而不僅僅是連接的列表元素
[stringElement1, stringElement2, ... ]
因此,如果您要尋找的角色是 ,
,
, [
或]
。 並且請記住,此字符串表示形式是特定於實現的。 它可能不適用於ArrayList以外的其他列表實現
我建議編寫一個鏈接此方法:
private boolean listElementContains(List<String> list, String subString){
for(String element : list){
if(element.contains(subString)){
return true;
}
}
return false;
}
嘗試這個,
Arrays.toString(inputList.toArray()).contains(searchValue);
您可以在任何Java對象上調用toString()
。 List
是一個包含(您猜對了)其他對象列表的對象。 因此,您還可以對List
包含的每個對象調用toString()
。 您應該閱讀有關Java繼承的知識。
在您的特定情況下,您有一個字符串列表。 您實際上要執行的操作是檢查列表中的每個字符串,以查看該字符串是否包含特定字符。 您可能需要閱讀的主題包括迭代,循環和每個循環。
如果我正確理解這一點,您的代碼將如下所示:
List<String> strings = new ArrayList<>();
//add strings to list
for (String string : strings) {
//Look for some character c
if (string.indexOf(c) >= 0) {
return true;
}
}
return false;
就list.toString
,它只是簡單地以字符串形式返回對象的表示形式。 它與內容無關。 可以將它想像成一盒標有“垃圾”的東西上的標簽。 這個盒子標有“垃圾”,但您不知道其中有什么。
幾乎可以肯定的是, toString
將為內存中的對象返回一個廢話標簽。 因此,要了解其中的內容,您需要遍歷上面顯示的內容。
if(list.toString.contains(char))
String
的contains()
方法不會將char作為param
,而是使用indexOf
檢查
您的代碼幾乎不需要修改就可以正常工作。
這里有個小例子:
List<String> list= new ArrayList<>();
list.add("test");
list.add("test2");
if (list.toString().indexOf('t') > -1) // True
{
System.out.println("yes there");
}
注意:
解決方法是,制作一個char數組並將您的char添加到該數組中 ,然后使用contains方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.