Tôi đã các ký tự sau đó tôi muốn được coi là "bất hợp pháp":Java chức năng trả về nếu chuỗi chứa ký tự bất hợp pháp
~
, #
, @
, *
, +
, %
, {
, }
, <
, >
, [
, ]
, |
, “
, ”
, \
, _
, ^
Tôi muốn viết một phương pháp mà kiểm tra một chuỗi và xác định (true
/false
) nếu chuỗi chứa những bất hợp pháp:
public boolean containsIllegals(String toExamine) {
return toExamine.matches("^.*[~#@*+%{}<>[]|\"\\_^].*$");
}
Tuy nhiên, một matches(...)
kiểm tra đơn giản là không khả thi cho việc này. Tôi cần phương pháp để quét mọi ký tự trong chuỗi và đảm bảo rằng nó không phải là một trong các ký tự này. Tất nhiên, tôi có thể làm điều gì đó khủng khiếp như:
public boolean containsIllegals(String toExamine) {
for(int i = 0; i < toExamine.length(); i++) {
char c = toExamine.charAt(i);
if(c == '~')
return true;
else if(c == '#')
return true;
// etc...
}
}
Có/cách hiệu quả thêm thanh lịch thực hiện điều này?
tại sao không thể sử dụng 'kết quả khớp'? –
vì đó không phải là mát mẻ! – thang