Tag Archives | Java

replaceAll กับ "\"

เมื่อวานเจอบั๊กเล็กๆ เกี่ยวกับ platform คือบน linux ก็ปกติดีไม่มีปัญหาอะไร แต่พอเปลี่ยนไปใช้บน windows ปุ๊บก็เจอ error ทันที คุยกับ deans4j ใน twitter ได้ข้อสรุปว่าเหตุผลมาจาก argument ตัวแรกของ method replaceAll ที่เป็น regular expression แล้ว argument ตัวที่สองดันเป็น “\” ซะนี่ ซึ่งมีพฤติกรรมพิเศษกับ regular expression (คุยในนั้น deans4j บอกว่ามีอีกตัวคือ “$” ใช่ป่าวหว่า) สำหรับวิธีแก้ก็คือ แทนที่จะใส่ argument หลังแค่ “\\” ก็ใส่เป็น “\\\\” แทน แต่ว่าผมจะใช้กับตัวแปรอื่นที่มีอยู่แล้วในจาวานั่นคือ File.separetor จะให้แก้ว่าเฉพาะ windows ให้ใช้ “\\\\” แทนก็ยังไงอยู่ เลยเปลี่ยนไปใช้อีก method นั่นคือ replace [...]

Read full story Comments { 0 }

java บน fedora9

ปกติอยู่บน ubuntu เวลาจะติด java ที่มาจาก sun นั้นก็ง่ายๆ แค่เปิด repository ที่ non-free จากนั้นก็ apt-get install จบแต่บน fedora ด้วยความเข้มงวดเรื่อง license ทำให้ java ที่ใช้ต้องเป็นแบบฟรีจริงๆ เท่านั้นซึ่งก็มีให้เลือกอยู่อย่างเดียวคือ java6 openjdk แต่งานผมส่วนใหญ่ยังต้องใช้ java5 นี่สิ เลยต้องลงแบบพิสดารหน่อย เริ่มจากดาวโหลด jdk มาก่อนเลย โดยผมดาวโหลด java 5 update 14 มา จากหน้านี้ http://java.sun.com/products/archive/j2se/5.0_14/index.html ที่โหลดรุ่นนี้เพราะว่า jpackage ตอนนี้ยังไม่มี update 15 ติดตั้ง rpm-build และ yum-utils sudo yum install rpm-build yum-utils เอาไฟล์ที่ดาวโหลดมาจากขั้นหนึ่งไปวางไว้ที่ /usr/src/redhat/SOURCE/ [...]

Read full story Comments { 3 }

NJUG5

เมื่อวานกะจะกลับมาเขียนแต่ปรากฏว่า iphone พังซะก่อนเลยมัวแก้ iphone แล้วก็เลยนอนดึกไปด้วยเลย – -” แถมไปคราวนี้ทุลักทุเลสังขารมาก วันเสาร์เพื่อนๆ ชวนไปคุย กินเหล้ากัน เล่นซะจนเมาเดินไปได้เลย ห้าห้าห้า กว่าจะนอนตีสามกว่า ตื่นอีกทีประมาณหกโมง ออกจากบ้านเพื่อนเจ็ดโมง ถึงบ้านเจ็ดโมงครึ่งอาบน้ำแต่งตัวมา NJUG5 ต่อเลย เป็นอะไรที่ต่อเนื่องทรมาณร่างกายดีมาก คราวหน้าจัดอีก จะไม่เมาอีกแล้ว >

Read full story Comments { 0 }

คิดถึงจาวา

ช่วงนี้ไม่ค่อยได้เขียนอะไรเกี่ยวกับจาวาเลย เพราะงานประจำตอนนี้ส่วนใหญ่เขียนแต่ actionscript ซะงั้น ส่วนงานเล่นๆ ก็วุ่นอยู่กับการทำ server ซะนี่ตอนนี้เลยไม่ได้เขียนจาวาจริงๆ จังๆ เลยไม่รู้ด้วยว่ามันไปถึงไหนแล้ว แต่วันเสาร์ที่ผ่านมา เพื่อนมาคุยด้วยความตื่นเต้นมากว่า EJB3 มันสุดยอด ด้วย annotation ต่างๆ ที่เพิ่มความสะดวกสบายมากมาย แต่พี่ท่านดันใช้ไม่ได้เพราะ project ต่างๆ ที่ทำดันใช้กับ websphere ที่ดันไม่รองรับกับ EJB3 เห้อ เล่าจบก็มาชวนต่อให้ไปลองเล่นดู พร้อมเสนอสไลด์อาจารย์ซึง(อาจารย์วีระศักดิ์ ซึงถาวร แต่ที่มหา’ลัย เรียกกันอย่างนี้ทุกคน ได้ยินมาว่าที่มหา’ลััยอื่นมีเรียกแต่ต่างกันบ้างด้วย ไว้รวบรวมมาเขียนอีกทีดีกว่า ฮะๆๆ)มาด้วย แต่ก็ไม่รู้จะเอามาทำอะไรแฮะ เหตุผลดูได้จากย่อหน้าแรก หรือว่า ชักจะอิ่มตัวกับจาวาแล้วหว่า หรือว่าใครมีแนะนำเสนอข่าวเกี่ยวกับจาวาอะไรให้มันน่าสนใจชวนให้ผมกลับมาตามล่าลองเล่นข่าวฝั่งจาวาบ้าง เสนอมาหน่อยก็ดีนะครับ แต่อย่ามาพวก EJB นะ เพราะผมว่ามันคงไม่ต่างอะไรจาก Spring + Hibernate มากนักหละ (หรือว่าต่าง?)

Read full story Comments { 0 }

Regular expression กับภาษาไทย

วันศุกร์กำลังนั่งทำงานอยู่ แล้วก็คิดไปคิดมาว่าสิ่งที่ต้องทำคือการตรวจสอบว่า ข้อความที่ส่งเข้ามานี่มีตัวอักษรประหลาดพวก *^#$… อะไรพวกนี้อยู่หรือป่าว ปกติก็ลองกับภาษาอังกฤษธรรมดา เวลาใช้ regular expression ตรวจก็จะมีรูปแบบประมาณว่า \w ซึ่งเหมือนกันทุกภาษา แต่พอใช้ภาษาไทยปรากฏว่ามันตรวจสอบโดยใช้รูปแบบด้านบนไม่ได้นี่สิ เลยต้องขุดเพิ่มเติมนิดหน่อยแล้วก็เจอตัวนี้เข้า \p{…} รูปแบบนี้เป็นตัวบอกว่าจะใช้กลุ่มรูปแบบที่เกี่ยวกับ unicode นะ คราวนี้ถ้าต้องการตรวจสอบภาษาไทยก็ใส่เป็น \p{L} แต่ปัญหามันไม่จบแค่นั้น ถ้าใส่แค่ L มันจะเอาเฉพาะที่เป็นพยัญชนะ พวก สระ และ วรรณยุกต์ ถ้าเจอมันจะบอกว่าผิดรูปแบบทันที แต่คำภาษาไทยมันรวมพวกนั้นเข้าไปด้วยหนะสิ ก็เลยต้องแก้รูปแบบอีกทีเป็น [\p{L}\p{M}] โดย M ที่ใส่มาก็เพื่อบอกว่าเอา สระ และ วรรณยุกต์ด้วยนั่นเอง สำหรับรายละเอียดเพิ่มเติมอ่านได้จากเว็บนี้ http://unicode.org/unicode/reports/tr18/ จะมีพวกตัวอักษรตัวเล็ก ตัวใหญ่ … อีกมากมายในภาษาอื่นๆ ด้วยลองไปดูเอาละกันครับ นอกเรื่อง: ส่วนนี้พูดถึง serialize ของจาวาหน่อย เพราะวันศุกร์ไปปล่อยความงี่เง่าส่วนตัวใส่เพื่อนแหะๆ ปกติเวลา serialize วัตถุอะไรในจาวาก็จะให้คลาสของ วัตถุนั้น implements [...]

Read full story Comments { 1 }