2013-08-18 88 views
-3

如何重印本字符串如何交換列表中的單詞。

List<String> abc = new ArrayList<String>(); 

     abc.add("D. Bwer"); 
     abc.add("Z. abc"); 
     abc.add("X. RDS"); 


Output : Bwer, D. 
     abc, Z. 
     RDS, X. 

試圖交換指標,但沒有工作

+4

哪裏是你的交換代碼? – BobTheBuilder

+1

它會永遠是'.'嗎?如果你可以拆分和重建每個項目。長度總是一樣嗎?你可以按位置拆分 –

+1

告訴我們你到底做了什麼? – saurav

回答

2

嘗試是這樣的

List<String> abc = new ArrayList<String>(); 
    abc.add("D. Bwer"); 
    abc.add("Z. abc"); 
    abc.add("X. RDS"); 
    for(String i:abc){ 
     String[] arr=i.split(" "); 
     System.out.println(arr[1]+", "+arr[0]); 
    } 
-1

要交換的Java的ArrayList中使用的元素, 靜態無效掉期(名單list,int firstElement,int secondElement) Collections類的方法。其中firstElement是要交換的第一個元素 的索引,secondElement是要交換的第二個元素 的索引。

如果指定的位置相同,列表保持不變。

請注意,如果 任何索引值不在範圍內,則此方法可能會拋出IndexOutOfBoundsException。

Collections.swap(arrayList,0,4); 
+2

這不是問題。 OP想交換字符串中的單詞(雖然沒有downvote) – bsd

0

如果您想通過串

首先解決辦法,如果空間位置的變化中去。

第二種解決方案,如果你知道空間將始終存在於第三個位置。

List<String> abc = new ArrayList<String>(); 

    abc.add("D. Bwer"); 
    abc.add("Z. abc"); 
    abc.add("X. RDS"); 

    for(String dummy:abc){ 
     System.out.println((dummy.substring(dummy.indexOf(" ")+1))+",  
     "+dummy.substring(0, dummy.indexOf(" "))); //1 

     System.out.println(dummy.substring(3)+", "+dummy.substring(0,3)); //2 
    } 
+0

姓和名可能超過3個字符。這些都是例子。 – bsd

+0

同意,這就是爲什麼我把第二個解決方案的條件。 – saurav

2
List<String> abc = new ArrayList<String>(); 

    abc.add("D. Bwer"); 
    abc.add("Z. abc"); 
    abc.add("X. RDS"); 

     List<String> string1= new ArrayList<String>(); 

     for(String str1: abc){ 
      String new1= str1.split("\\s+")[0]; 
      String new2= str1.split("\\s+")[1]; 
      String temp = new2+","+ new1; 

      string1.add(temp); 
     } 

    } 
相關問題