replaceAll กับ "\"

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

About llun

Just a programmer

,