2009-10-10 43 views

Trả lời

1

Nếu bạn biết chiều dài của mảng, bạn có thể dễ dàng làm như sau:

String result = s[0] + s[1] +s[2]; 

Một lựa chọn khác là để làm những điều sau đây, (trong đó hoàn toàn là học tập, tôi sẽ không sử dụng nó trong một gian thực kịch bản thế giới vì nó sẽ loại bỏ [, ], và <space> từ chuỗi của bạn):

String result = Arrays.toString(s).replaceAll("[\\]\\[, ]", ""); 

Tuy nhiên, một tùy chọn, để đi cùng với sự nỗ lực đầu tiên, nhưng sử dụng một định dạng C-like:

System.out.println(String.format("%s%s%s", s)); 
+0

Nếu chiều dài là 100? Bạn cần một vòng lặp. – DragonBorn

0
String result = s[0] + s[1] + s[2]; 

Nếu bạn có số lượng mục nhập không xác định, tôi nghĩ bạn sẽ cần một vòng lặp.

+0

Tôi nghĩ anh ấy chỉ đưa ra một ví dụ. Điều gì sẽ xảy ra nếu mảng được truyền trong một phương thức? – DragonBorn

+0

Vâng mảng này biết nó lớn như thế nào (trong Java, dù sao), và sau đó bạn có thể lặp lại. Nếu không, may mắn khó khăn. –

9

Nếu không lặp là điều quan trọng hơn đối với bạn hơn ngăn chặn nhập khẩu một thư viện hoặc nếu bạn đang sử dụng apache commons lang đã, dù sao, bạn có thể sử dụng phương pháp StringUtils.join

import org.apache.commons.lang.StringUtils; 
String joined = StringUtils.join(s, ""); 

lẽ Apache Commons có khác các phương thức có thể thú vị cho dự án của bạn. Tôi tìm thấy chúng là một nguồn tài nguyên rất hữu ích cho việc thiếu các tính năng trong các thư viện Java nguyên gốc.

+1

Điều đó không chỉ lặp lại bên trong việc thực hiện nó? –

+0

+1 để không phát minh lại bánh xe. – SingleShot

+3

Rõ ràng là sẽ có một vòng lặp _somewhere! _ –

0

Java không có phương thức loại String.join(). Bạn sẽ phải cuộn một mình nếu bạn muốn ẩn vòng lặp.

2

Nếu không có vòng lặp, bạn có thể:

public String joinpart(String[] a, int i, String prefix) { 
    if (i < a.length) { 
     return joinpart(a, i + 1, prefix + a[i]); 
    } 
    return prefix; 
} 

thì:

String[] a = new String[]{"Ap", "p", "le"}; 
String apple = joinpart(a, 0, ""); 

này được gọi là một giải pháp đệ quy.

+0

Nó cũng bậc hai trong kích thước của chuỗi kết quả. Bạn nên sử dụng 'StringBuilder' trong' joinpart' để xây dựng chuỗi. – JaakkoK

+1

Tôi không nghĩ điều đó quan trọng đối với bài tập học tập đặc biệt này, vì vậy tôi không muốn làm phức tạp việc thực hiện. Điều đó sẽ làm mờ đi bản chất của giải pháp, đó là điều quan trọng ở đây. –

+0

Giải pháp tốt. Điều gì về việc sử dụng một trình xây dựng chuỗi? Chúng tôi có thể chỉ định dung lượng và nối thêm vào vòng lặp for thay vì sử dụng đệ quy. Tôi hỏi điều này bởi vì tôi nghĩ rằng nó sẽ nhanh hơn cho các mảng kích thước lớn hơn. Liệu tôi có sai? – JCasso

1

sử dụng Dollar là đơn giản như gõ:

String[] array = new String[] { "Ap", "p", "le" }; 
String result = $(array).join(); // result now is "Apple" 
+0

đẹp nhất !! [:-) –

+2

Nhưng câu hỏi là về Java chứ không phải Javascript. –

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