在Java中拆分字符串并附加到列表

在Java中拆分字符串并附加到列表,java,jlist,Java,Jlist,用例:我试图提取括号内的参数并将其填充到jList中 输入: title(a1, a3) 代码: static ArrayList variableList=new ArrayList(); Matcher m=Pattern.compile(“\\([^)]+)\\)”.Matcher(result.toString().trim()); while(m.find()) { 如果(!variableList.contains(m.group(1.trim())) { variableLi

用例:我试图提取括号内的参数并将其填充到jList中

输入:

title(a1, a3)
代码:

static ArrayList variableList=new ArrayList();
Matcher m=Pattern.compile(“\\([^)]+)\\)”.Matcher(result.toString().trim());
while(m.find())
{ 
如果(!variableList.contains(m.group(1.trim()))
{ 
variableList.add(m.group(1.trim());
}
}
DefaultListModel lista1=新的DefaultListModel();

对于(int i=0;i而言,问题不在JList中,而是在matcher逻辑中

如果您总是知道您的“类型”将在括号内,那么您可以执行以下操作

// Declare lists
DefaultListModel<String> lista1 = new DefaultListModel<String>();
ArrayList<String> variableList = new ArrayList<String>();
JList<String> jList = new JList<String>();

String result = "type(t1, t2)";

// Get string within parenthesis
result = result.substring(result.indexOf('(') + 1, result.indexOf(')'));

// Split into elements
String[] types = result.split(",");

// For each, add to list if not duplicate
for (int i = 0; i < types.length; i++) 
 { 
    String type = types[i].trim();
    if (!variableList.contains(type))
    { 
        variableList.add(type);
        lista1.addElement(type);
    }
 }

jList.setModel(lista1);

// Add to frame/revalidate/repaint as needed
//声明列表
DefaultListModel lista1=新的DefaultListModel();
ArrayList variableList=新的ArrayList();
JList JList=新JList();
String result=“type(t1,t2)”;
//获取括号内的字符串
result=result.substring(result.indexOf('('))+1,result.indexOf('));
//分解成元素
String[]types=result.split(“,”);
//对于每个,如果不重复,则添加到列表中
for(int i=0;i

另外,参数化您的JList和DefaultListModel。请参见

然后是否在某个地方打印此文件?显示列表的代码在哪里?
// Declare lists
DefaultListModel<String> lista1 = new DefaultListModel<String>();
ArrayList<String> variableList = new ArrayList<String>();
JList<String> jList = new JList<String>();

String result = "type(t1, t2)";

// Get string within parenthesis
result = result.substring(result.indexOf('(') + 1, result.indexOf(')'));

// Split into elements
String[] types = result.split(",");

// For each, add to list if not duplicate
for (int i = 0; i < types.length; i++) 
 { 
    String type = types[i].trim();
    if (!variableList.contains(type))
    { 
        variableList.add(type);
        lista1.addElement(type);
    }
 }

jList.setModel(lista1);

// Add to frame/revalidate/repaint as needed