我有一个来自txt文件的脚本,我想存储到数组列表中
输出只能包含%和数字:
jump 1500
walk 50%
jump 1280
我想将它们存储在像
这样的数组中string[] arr = {"jump", "1500"};
并将每个数组添加到列表中
如何将每一行分成一个数组并忽略不遵循第二部分格式的行(仅限%和数字)
答案 0 :(得分:2)
将线条拆分成数组:
if let rtf = NSBundle.mainBundle().URLForResource("rtfdoc", withExtension: "rtf", subdirectory: nil, localization: nil) {
let attributedString = NSAttributedString(fileURL: rtf, options: [NSDocumentTypeDocumentAttribute:NSRTFTextDocumentType], documentAttributes: nil, error: nil)
textView.attributedText = attributedString
textView.editable = false
要检查String ONLY是否包含数字和%,请使用正则表达式:
List<String> list = new ArrayList<>();
// for each line ...
// line is "jump 1500" for example
String[] array = line.split(" ");
list.add(array);
// array => {"jump", "1500"}
正则表达式基本上是指字符串以,开头,结尾,仅包含数字或%。请注意,空字符串将匹配,如果要强制最小长度为1,请使用+而不是*:
String line = "1500%";
if (line.matches("^[\\d\\%]*$") {
// match!
}
答案 1 :(得分:1)
也许您可以尝试使用Regex来实现这一目标。
List saveList = new ArrayList();//List you want to keep result
String pattern = "[\\w]* (\\d*|\\d*%)";
String lineText = "jump 1280";//line text from your txt file
if (lineText.matches(pattern)) {
saveList.add(lineText.split(" "));
}