用Java创建模式数组

use*_*210 0 java arrays

这可能是一个非常简单的问题,但我正在尝试创建一个模式数组,并且存在一些问题.我所做的是以下内容:

Pattern [] aminos = null;
aminos [0] = Pattern.compile("(gct)|(gcc)|(gca)|(gcg)");
aminos [1] = Pattern.compile("(tgt) | (tgc)");
aminos [2] = Pattern.compile("(gat) | (gac)");
Run Code Online (Sandbox Code Playgroud)

在我尝试运行它之前没有语法错误或任何东西,但是当我尝试运行它时,在第二行中断"Null指针访问:变量aminos在此位置只能为null".那么如何创建Pattern数组呢?当我忽略指定null时出现一个错误,要求我初始化数组,所以我不确定现在要做什么.

我想我可以将所有正则表达式模式存储在一个字符串数组中,然后根据需要编写一个小函数来形成模式,但如果我可以创建一个模式数组会更方便.

感谢您阅读!

Jon*_*eet 6

这是一个简单的方法:

Pattern[] aminos = {
    Pattern.compile("(gct)|(gcc)|(gca)|(gcg)"),
    Pattern.compile("(tgt) | (tgc)"),
    Pattern.compile("(gat) | (gac)")
};
Run Code Online (Sandbox Code Playgroud)

或者,您可以创建一个正确大小的数组,以便开始:

Pattern[] aminos = new Pattern[3];
Run Code Online (Sandbox Code Playgroud)

这意味着计算正确 - 第一个版本将自动为您提供正确大小的数组.

或者使用List<Pattern>替代(集合类通常比数组更愉快):

List<Pattern> aminos = new ArrayList<Pattern>();
aminos.add(Pattern.compile("(gct)|(gcc)|(gca)|(gcg)"));
aminos.add(Pattern.compile("(tgt) | (tgc)"));
aminos.add(Pattern.compile("(gat) | (gac)"));
Run Code Online (Sandbox Code Playgroud)