我想从特殊字符列表中过滤掉转义字符。
String data = "21.LRK.31";
char[] charactersInData = data.toCharArray();
Pattern pattern = Pattern.compile("[^0-9^a-z^A-Z]+");
String specialCharacterInData = "";
String escapeCharacterInData = "";
for (int i = 0; i < charactersInData.length; i++) {
Matcher matcher = pattern.matcher(String.valueOf(charactersInData[i]));
if (matcher.matches()) {
specialCharacterInData = String.valueOf(charactersInData[i]);
break;
}
}
pattern = Pattern.compile("[^0-9^a-z^A-Z]+");
if (specialCharacterInData.equals(".")) {
escapeCharacterInData = "\\" + specialCharacterInData;
} else {
escapeCharacterInData = specialCharacterInData;
}
String[] contentOfLicencePlateNumber = data.split(escapeCharacterInData);
在获取specialCharacterInData
之后,我想再次检查这个特殊字符是否是转义字符,因为要通过转义字符拆分字符串,您需要在此之前添加2个反斜杠(\\
)。
答案 0 :(得分:1)
如果你想在任何非字母数字字符上拆分字符串,那么使用单行代码就可以轻松完成:
import UIKit
import WebKit
class ViewController: UIViewController, UIDocumentInteractionControllerDelegate {
var docController: UIDocumentInteractionController!
override func viewDidLoad() {
super.viewDidLoad()
docController = UIDocumentInteractionController.init(url: URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(urlVal!))
docController.delegate = self
docController.presentPreview(animated: true)
}
func documentInteractionControllerViewControllerForPreview(_ controller: UIDocumentInteractionController) -> UIViewController {
return self
}
}
如果您有此需求,请更新您的问题。我怀疑你可能正在做额外的工作,这对于实现你的最终目标是不必要的。
编辑:如果你真的需要逃避一个未知的角色,那么考虑将它放入一个角色类。例如:
String data = "21.LRK.31";
String[] parts = data.split("[^A-Za-z0-9]");
这将输出System.out.println("Hello.World!".split("[.]")[1]);
,我们可以分为点,一个元字符,而不必担心转义。