ฉันมีข้อกำหนดในการกรองคำหยาบออกจากการส่งของผู้ใช้ในเว็บแอปพลิเคชันที่ใช้ Java ลูกค้าตระหนักถึงปัญหา ScunthorpeและClbuttic Problemและยอมรับผลที่ตามมา ได้โปรดฉันไม่ต้องการการถกเถียงเกี่ยวกับข้อดีของการขาดการเซ็นเซอร์
มีข้อมูลสองบิต:
- การส่งของผู้ใช้ซึ่งอาจมี 500 คำหรือมากกว่านั้น
- ตารางฐานข้อมูลคอลัมน์เดี่ยวที่มีคำที่ไม่ได้รับอนุญาต อาจมีหลายพันระเบียนในตารางนี้
วิธีแก้ปัญหาปัจจุบันดูเหมือนผิดกับฉัน:
- ตารางทั้งหมดจะถูกโหลดลงในสแตติก String [] เมื่อเริ่มต้นเป็น Singleton (ดังนั้นจึงอยู่ในหน่วยความจำ)
- สำหรับการส่งผู้ใช้แต่ละครั้งเราวนลูปผ่านอาร์เรย์และทำ. indexOf () เพื่อดูว่ามีคำที่ให้ไว้ใน String [] ปรากฏในการส่งหรือไม่
- ถ้ามันปรากฏขึ้นเราจะแทนที่ด้วยตัวอักษรสไตล์% $ # @% สิ่งนี้ทำได้โดยโทเค็นการส่งผู้ใช้วนซ้ำผ่านการส่งผู้ใช้ทั้งหมดเป็นโทเค็น (อีกครั้ง) และแทนที่แต่ละอินสแตนซ์ของคำที่พบ
อาจมีความฉลาดในการแก้ปัญหานี้ แต่ฉันสงสัย และเมื่อได้ดูมันซักพักฉันก็หาทางผ่านไม่ได้
คำถามคืออะไรคือวิธีการแก้ปัญหาที่จะให้ผลงานที่ดีและหวังว่าจะมีเหตุผลอย่างมีเหตุผลสำหรับนักพัฒนาในอนาคตที่จะรักษาหลังจากที่ฉันถูกไล่ออกเพราะล้มเหลวในการกรองคำบางคำที่คลุมเครือฉันไม่เคยได้ยิน