|
|
|
JAVA นับจำนวนตัวอักษรภาษาไทย โดยไม่นับ สระที่อยู่ตำแหน่งบนล่าง เช่น สระอิ สระอุ การันต์ |
|
|
|
|
|
|
|
ลองแปลงให้มันเป็นแบบ UTF-8 ก่อนครับ
Code (Java)
public class Main {
public static void main(String[] argv) throws Exception {
String string = "abc\u5639";
byte[] utf8 = string.getBytes("UTF-8");
string = new String(utf8, "UTF-8");
System.out.println(string);
}
}
|
|
|
|
|
Date :
2015-03-29 07:15:15 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
งงกับคำตอบ
|
|
|
|
|
Date :
2018-07-03 14:35:00 |
By :
งง |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static void main(String[] args) throws IOException {
StringBuilder sb = new StringBuilder();
sb.append(String.format("%s %50s%n", "A", "Monthly Report"));
sb.append(String.format("%s %48s%n", "A", "Report Name"));
sb.append(String.format("%s %n", "A"));
sb.append(String.format("%s %-20s %-20s %-20s%n", "A", "Category", "Quantity", "Price"));
sb.append(String.format("%s %-20s %-20s %-20s%n", "A", "--------------", "--------------", "--------------"));
sb.append(String.format("%s %-20s %-20s %-20s%n", "B", new String("สวัสดีครับ".getBytes("utf-8"), StandardCharsets.UTF_8), 100, "$200"));
System.out.println(sb.toString());
}
จากโปรแกรมด้านบน หากภาษาไทยไม่มีสระหรือวรรณยุกต์ที่อยู่ตำแหน่งบนหรือล่าง จะทำให้ตัวเลข100แสดงถูกตำแหน่ง
แต่หากมีสระหรือวรรณยุกต์ที่อยู่ตำแหน่งบนหรือล่างตัวหนังสือเข้าไปด้วย จะทำให้ ตัวเลข100แสดงผิดตำแหน่ง
ดูเหมือนจาวาจะคำนวนตำแหน่งโดย เอาจำนวนสระวรรณยุกต์พวกนั้น ลดตำแหน่งตามจำนวน
ลองรันดูครับจะเข้าใจ
ผมไม่ทราบวิธีแก้ ติดมา3วันแล้ว
ท่านใดทราบช่วยแนะนำท่ีครับ
|
|
|
|
|
Date :
2018-07-03 14:43:13 |
By :
รบกวนด้วยครับ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|