Joining array of strings in Java

จาก tweet ของ @veer66 เลยอยากรู้ว่าทำไมเลยลองหาดู ดีที่สุดได้แค่นี้

Java

String[] s = "Hello World".split(" ");
StringBuffer sb = new StringBuffer();
for (int i=0;i<s.length;i++){
     sb.append(s[i]);
     if (i != s.length-1)
        sb.append(" ");
}
System.out.println(sb.toString());

ถ้าภาษาอื่นล่ะ

Python (ผ่าน interactive mode)

>>> " ".join("hello world".split(" "))
'hello world'

Ruby (ผ่าน irb)

irb(main):001:0> "Hello World".split(' ').join(' ')
=> "Hello World"

C#

Console.WriteLine(String.Join(" ","Hello World".Split(' ')));

Ruby เท่สุดแฮะรู้สึกว่ามันเป็นธรรมชาติมาก

ตอนที่เขียน Python ใหม่ๆก็รู้สึกอยู่ว่ามันขัดๆ พอเริ่มคิดได้ว่า C# มันก็ไม่มี join ตรงๆเหมือนกัน ถึงนึกออกว่าตอนเขียน C# มันก็รู้สึกแปลกๆเหมือนกัน

อะ แถมด้วยโค้ดตอบ tweet นี้

irb(main):002:0> print 'คิดถึง'*99

Comments

August 21, 2009 - 14:44
#1230

หวังว่า jdk7 หรือ jdk8 จะมีมาให้

wiennat
August 21, 2009 - 21:54
#1231

เจอเหมือนมีใน apache utils อะไรซักอย่างอะครับ

August 24, 2009 - 23:52
#1235

ใน Python กะ Ruby ใช้ interactive console นิ ไม่ต้องสั่ง output ไปหนึ่งคำสั่ง :p

ของ Java ถ้าโกงหน่อย ใช้ org.apache.commons.lang ก็จะได้ออกมาคล้าย ๆ ตัว C# ข้างบน:

System.out.println(StringUtils.join("Hello World".split(" "), " "));

wiennat
August 27, 2009 - 09:59
#1238

@bact เค้าน่าจะพิจารณาเอามารวมใน library ของจาวาเลยนะครับ

Post new comment

The content of this field is kept private and will not be shown publicly.