单独的单词行和存储到数组中

时间:2016-01-20 05:32:09

标签: java arrays

我有一个来自txt文件的脚本,我想存储到数组列表中

输出只能包含%和数字:

jump 1500
walk 50%
jump 1280

我想将它们存储在像

这样的数组中
string[] arr = {"jump", "1500"};

并将每个数组添加到列表中

如何将每一行分成一个数组并忽略不遵循第二部分格式的行(仅限%和数字)

2 个答案:

答案 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(" "));
}