tôi biết quan điểm của tôi về vấn đề này thực sự không phải là phổ biến, do đó bạn guys có thể xuống bỏ phiếu cho tôi vào quên lãng nếu bạn muốn, nhưng Tôi phải rant một chút (và điều này có chứa một giải pháp, chỉ cần không theo cách áp phích yêu cầu).
Tôi thực sự không hiểu tại sao mọi người chuyển sang cụm từ thông dụng quá nhanh.
Tôi đã thực hiện rất nhiều phân tích chuỗi (Được sử dụng để sàng lọc màn hình menu vt100) và tôi chưa bao giờ tìm thấy một trường hợp nào biểu thức thông thường sẽ dễ dàng hơn nhiều so với chỉ viết mã. (Có lẽ một cặp vợ chồng sẽ dễ dàng hơn một chút, nhưng không nhiều).
Tôi hiểu rằng chúng dễ dàng hơn khi bạn biết chúng - nhưng bạn thấy ai đó đặt câu hỏi như thế này và nhận ra chúng không dễ dàng cho mọi lập trình viên chỉ bằng cách liếc nhìn nó. Nếu chi phí 1 lập trình ở đâu đó trong dòng 10 phút của suy nghĩ, nó có một mất mát lớn trên chỉ cần mã hóa nó, ngay cả khi bạn mất 5 phút để viết 5 dòng.
Vì vậy, nó sẽ cần tài liệu - và nếu ai đó ở cùng cấp ngang qua nó, anh ấy sẽ không thể sửa đổi nó mà không có kiến thức bên ngoài miền của mình, ngay cả với tài liệu.
Tôi muốn nói rằng nếu người đăng tải phải hỏi về một vụ án tầm thường - thì đó không phải là một trường hợp tầm thường.
public String getRealText(String scanMe) {
for(int i=0 ; i < scanMe.length ; i++)
if(isUpper(scanMe[i]) && isLower(scanMe[i+1]))
return scanMe.subString(i);
return null; }
Tôi có nghĩa là 5 dòng, nhưng nó đơn giản, dễ đọc và nhanh hơn hầu hết các trình phân tích cú pháp RE (tất cả?). Khi bạn đã bao bọc cụm từ thông dụng trong một phương thức và nhận xét nó, sự khác biệt về kích thước không thể đo lường được. Sự khác biệt về thời gian - cũng đối với áp phích, nó rõ ràng sẽ là một thời gian ít hơn rất nhiều - vì nó có thể là cho người tiếp theo mà đi qua mã của mình.
Và hoạt động chuỗi này là một trong những người mà thậm chí còn dễ dàng hơn trong C với con trỏ - và nó sẽ là thậm chí nhanh hơn kể từ khi chức năng kiểm tra là macro trong C.
Bằng cách này, chắc chắn bạn nhìn cho một không gian trong khe thứ hai, không chỉ là biến trường hợp thấp hơn, nếu không bạn sẽ bỏ lỡ bất kỳ dòng nào bắt đầu bằng từ A hoặc I.
Trong trường hợp bạn không đặt nó ở cuối "Trả lời" của tôi, hãy chắc chắn rằng bạn kiểm tra một không gian trong khe thứ hai. Để có độ tin cậy cao hơn một chút, bạn có thể kiểm tra "I" và "A" là trường hợp đặc biệt. Ngoài ra, điều đó sẽ phá vỡ ví dụ của bạn "A TEST" sẽ khớp. Đây không phải là một thuật toán rất tốt. –