- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
(我来自 python 世界,所以如果我使用的一些术语符合规范,我深表歉意。)
tôi có một cái Sợi dây
和一个要替换的 Danh sách
开始/结束索引。无需太多细节,请考虑以下基本模型:
String text = "my email is foo@bar.com and my number is (213)-XXX-XXXX"
List findings = SomeModule.someFnc(text);
VàToken
có
class Token {
int start, end;
String type;
}
此 Danh sách
表示我要编辑的敏感数据的开始和结束位置。
实际上,API 返回我迭代获取的数据:
[{ "start" : 12, "end" : 22, "type" : "EMAIL_ADDRESS" }, { "start" : 41, "end" : 54, "type" : "PHONE_NUMBER" }]
使用这些数据,我的最终目标是编辑由这些 Token
对象指定的 chữ
中的标记,以获得:
"my email is [EMAIL_ADDRESS] and my number is [PHONE_NUMBER]"
让这个问题变得重要的是,替换子串的长度并不总是与它们要替换的子串的长度相同。
我目前的行动计划是从 chữ
构建一个 StringBuilder
,按照起始索引的相反顺序对这些 ID 进行排序,然后从缓冲区的右端开始替换.
但有些东西告诉我应该有更好的方法……有吗?
câu trả lời hay nhất
这种方法有效:
nhập java.util.ArrayList;
nhập java.util.List;
lớp công khai Kiểm tra {
public static void main(String[] args) {
String text = "my email is foo@bar.com and my number is (213)-XXX-XXXX";
List findings = new ArrayList<>();
findings.add(new Token(12, 22, "EMAIL_ADDRESS"));
findings.add(new Token(41, 54, "PHONE_NUMBER"));
System.out.println(replace(text, findings));
}
public static String replace(String text, List findings) {
int position = 0;
StringBuilder result = new StringBuilder();
for (Token finding : findings) {
result.append(text.substring(position, finding.start));
result.append('[').append(finding.type).append(']');
position = finding.end + 1;
}
return result.append(text.substring(position)).toString();
}
}
class Token {
int start, end;
String type;
Token(int start, int end, String type) {
this.start = start;
this.end = end;
this.type = type;
}
}
Đầu ra:
my email is [EMAIL_ADDRESS] and my number is [PHONE_NUMBER]
关于java - Java中的多个同时子字符串替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50921075/
Tôi muốn thực hiện tìm kiếm và thay thế trên một chuỗi, chẳng hạn như mật khẩu. Như bạn đã biết từ câu hỏi, chuỗi được thay thế sẽ trở thành sdvvzrug. Nhưng thật không may, đoạn mã sau xuất ra bbbbcaab: $search = ran
Tôi đang sử dụng futurize --stage2 áp dụng một số chuyển đổi mã nguồn để làm cho mã python2 và python3 tương thích. Một trong những cách khắc phục là thay thế tất cả các phân vùng a/b bằng old_div(a/b), tôi muốn tránh điều này
Tôi đang sử dụng RStudio nhưng đầu ra trên bảng điều khiển của tôi bị cắt bớt. Tôi không thể tìm cách ngừng cắt ngắn (tôi đã thử tìm kiếm ?options và tìm kiếm trên Google lâu hơn mức tôi muốn thừa nhận). EDIT: Tôi xin lỗi! Tên dài ban đầu của tôi là "Đây
Tôi có một chồng các mảnh mà tôi sử dụng phép thay thế và phép cộng. Mã để thêm hoặc thay thế đoạn của tôi (trong Hoạt động của tôi) như sau
Tôi đang chèn một số chuỗi vào một mảng, nhưng trước khi làm điều đó tôi muốn làm theo những gì chủ đề nói. Để chỉ thay thế khoảng trắng bằng %20, tôi làm điều này: Name.push(linkText.replace(" ", "%20"));
Tôi đang cố gắng biên dịch và kiểm tra mã mà tôi đã thấy trực tuyến Mở rộng địa chỉ IP. Tuy nhiên, khi tôi cố gắng biên dịch nó, tôi gặp lỗi về phương thức thay thế StringBuilder. Nó nói: IPadd.java:52:
Tôi đang cố gắng viết lại một phần mã của mình bằng các tính năng mới nhất của dplyr bằng cách thay thế data.frame() bằng data_frame() và cbind() bằng bind_cols():
Gần đây tôi tình cờ gặp thay thế() và "[ x.tst s.tst s.tst [,1] [,2] [,3] [1,] 0 0 0
Tôi đang tự hỏi làm cách nào để thực hiện thay thế trong một tham số nhất định. Nếu bạn có một dòng như thế này: 123,Xin chào,Thế giới,(Tôi ở đây), không xác định và bạn muốn thay thế Thế giới bằng Foobar thì đó là một nhiệm vụ đơn giản
Làm thế nào để thoát khỏi dấu ngoặc kép trong một chuỗi? Ví dụ: đầu vào: "Không ai" đầu ra: \"Không ai\" Tôi đã thử một cái gì đó như thế này nhưng nó không hoạt động: String name = "Nobody";
Tôi đang làm một cái gì đó như: SQL sql sQl SqL var ps = document.getElementsByTagName('p'); for(var i = 0; i nhưng nó không thay thế văn bản.
Tôi đang cố gắng thay thế tất cả " bằng \" và phân tích chuỗi bằng JSON nhưng trình duyệt đưa ra lỗi SyntaxError: JSON Parse error: Unrecognized token '\' Dưới đây là mã.
Xin chào mọi người, đang gặp khó khăn ở đây... Có thể thay thế bất cứ thứ gì giữa dấu gạch chéo lên đầu tiên bằng "" nhưng giữ phần còn lại không? Ví dụ var sẽ là chuỗi "/anything-here-this-needs-to-be-re
Trong mã bên dưới, cảnh báo (a) trong hàm thay thế JavaScript sẽ cảnh báo về các chuỗi khớp, trong trường hợp này sẽ là {name} và {place}. Điều này hoạt động như được mô tả trong tài liệu tài liệu javascript, tức là.
+--------------------------------+ | bảng | +-------------------
Tôi đang cố gắng thay thế một chuỗi chứa " bằng \", dưới đây là quy trình tôi đã thử String s="\"/test /string\""; ");
var text = "a's ..a's ...\"... "; text = convert(text); hàm convert(text) { var n = text
Tôi đang cố gắng sử dụng hàm thay thế trong JavaScript nhưng tôi gặp sự cố. strNewDdlVolCannRegion = strNewDdlVolCannRegion.replace(/_being
Được rồi, trước hết tôi thực sự xin lỗi vì bài đăng cuối cùng của mình, nhưng tôi thực sự cần trợ giúp và tôi sẽ đưa những gì tôi thực sự muốn vào một mã rõ ràng hơn. Mình không giỏi javascript nên mong bạn giúp đỡ.
Tôi đang viết một ghi chú và gặp phải rào cản. Có thể có cách hiệu quả hơn để thực hiện việc này nhưng tôi khá mới với Python. Tôi đang cố gắng tạo danh sách địa chỉ IP do người dùng tạo. Tôi đang sử dụng bản in để xem các giá trị được tạo có chính xác không. khi tôi chạy mã này
Tôi là một lập trình viên xuất sắc, rất giỏi!