2012-06-03 33 views
6

Làm cách nào để chụp String[] và tạo bản sao của String[] đó, nhưng không có Chuỗi đầu tiên? Ví dụ: Nếu tôi có điều này ...Chuỗi Java [] sao chép một phần

String[] colors = {"Red", "Orange", "Yellow"}; 

Làm thế nào tôi làm cho một chuỗi mới đó là giống như màu sắc bộ sưu tập chuỗi, nhưng không có màu đỏ trong nó?

Trả lời

14

Bạn có thể sử dụng Arrays.copyOfRange:

String[] newArray = Arrays.copyOfRange(colors, 1, colors.length); 
+0

Cảm ơn người đàn ông! Tôi thực sự bắt đầu nó! – Barakados

5
String[] colors = {"Red", "Orange", "Yellow"}; 
String[] copy = new String[colors.length - 1]; 
System.arraycopy(colors, 1, copy, 0, colors.length - 1); 
8

Quên về mảng. Họ không phải là một khái niệm cho người mới bắt đầu. Theo thời gian, bạn nên đầu tư tốt hơn vào việc tìm hiểu API Bộ sưu tập.

/* Populate your collection. */ 
Set<String> colors = new LinkedHashSet<>(); 
colors.add("Red"); 
colors.add("Orange"); 
colors.add("Yellow"); 
... 
/* Later, create a copy and modify it. */ 
Set<String> noRed = new TreeSet<>(colors); 
noRed.remove("Red"); 
/* Alternatively, remove the first element that was inserted. */ 
List<String> shorter = new ArrayList<>(colors); 
shorter.remove(0); 

Đối với liên tác với các API di sản mảng dựa trên, có một phương pháp tiện dụng trong Collections:

List<String> colors = new ArrayList<>(); 
String[] tmp = colorList.split(", "); 
Collections.addAll(colors, tmp); 
+1

+1 Có kiến ​​thức và sau đó có sự khôn ngoan. –

+1

Không nên là 'short.remove (0)' để loại bỏ phần tử đầu tiên? – SHiRKiT

+0

@SHiRKiT Rất tiếc, cảm ơn! – erickson

Các vấn đề liên quan