Hỏi đáp
Chia sẻ kiến thức, cùng nhau phát triển
Mình đang viết phương thức xử lý chuỗi địa chỉ khi nhập vào. Chuỗi chỉ cho phép chữ,số, khoảng trắng và dấu phẩy. Mình xử lý gần hết các trường hợp rồi trừ 1 trường hợp nhập vào chuỗi có ", , , , , , , , , , " (dấu phẩy rồi cách) thì nó sẽ trả về ",,,,,,,,,,,,,,,,,," (chỉ cắt được dấu cách) mà không cắt mấy dấu phẩy thừa. Ai giúp mình hoàn thiện đoạn code này với. Mình cảm ơn ạ :3
/// Hiện tại mình đang giải quyết bằng gọi lại xulyChuoi(xulyChuoi(String s)) để nó xử lý lại cái ,,,,,,,,,,,,,,,,,,,, kia =)))))
private String xulyChuoi(String s) {
for (;;) {
if ((s.charAt(0) == ' ') || (s.charAt(0) == ',')) {
s = s.substring(1);
} else if ((s.charAt(s.length() - 1) == ' ') || (s.charAt(s.length() - 1) == ',')) {
s = s.substring(0, s.length() - 1);
} else {
break;
}
}
String temp = String.valueOf(s.charAt(0)).toUpperCase();
for (int i = 1; i < s.length(); i++) {
if (((s.charAt(i) == ' ') && (s.charAt(i + 1) == ' ')) || ((s.charAt(i) == ',') && (s.charAt(i + 1) == ','))) {
s = s.substring(0, (i + 1)) + s.substring(i + 1);
} else if ((s.charAt(i) == ' ') && (s.charAt(i + 1) == ',')) {
s = s.substring(0, (i)) + s.substring(i);
} else if ((s.charAt(i) != ' ') && (s.charAt(i - 1) == ' ')) {
temp += String.valueOf(s.charAt(i)).toUpperCase();
} else if ((s.charAt(i) != ',') && (s.charAt(i) != ' ') && (s.charAt(i - 1) == ',')) {
temp += " " + String.valueOf(s.charAt(i)).toUpperCase();
} else {
temp += String.valueOf(s.charAt(i)).toLowerCase();
}
}
return temp;
}
Nếu đã làm vậy thì bạn đệ quy luôn đi, bạn viết 1 hàm bool kiểm tra xem chuỗi đã ok chưa, chưa thì gọi lại hàm xulyChuoi(s) đó
Nếu là chuẩn hoá chuỗi bình thường thì bạn có thể tham khảo đoạn code sau:
Chưa hiểu hết ý bạn. Ví dụ chuổi " ,,,,, ,,,,, ,,,, , , , ,, " thì kết quả bạn mong muốn là gì.