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
หวังว่า jdk7 หรือ jdk8 จะมีมาให้
เจอเหมือนมีใน apache utils อะไรซักอย่างอะครับ
ใน Python กะ Ruby ใช้ interactive console นิ ไม่ต้องสั่ง output ไปหนึ่งคำสั่ง :p
ของ Java ถ้าโกงหน่อย ใช้ org.apache.commons.lang ก็จะได้ออกมาคล้าย ๆ ตัว C# ข้างบน:
System.out.println(StringUtils.join("Hello World".split(" "), " "));
@bact เค้าน่าจะพิจารณาเอามารวมใน library ของจาวาเลยนะครับ
Post new comment