簡體   English   中英

在Java中使用toString()列出字符串

[英]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))

Stringcontains()方法不會將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM