关于芬德尔未将所有信息放入lis

2024-05-19 17:03:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有用分号分隔的信息,我试图把它们全部放在一个列表中:

txt = Alert Level: 3; Rule: 5502 - Login session closed.; Location: mycomputer->/var/log/secure;Jul  1 14:22:25 MYCOMPUTER sshd[6470]: pam_unix(sshd:session): session closed for user root

当我使用这个表达式时:

result = re.findall('.*?;', txt)

我回来了:

result = [' Alert Level: 3;', ' Rule: 5502 - Login session closed.;', ' Location: MYCOMPUTER->/var/log/secure;']

我错过了最后一个分号后的最后一点信息,我不知道如何抓住它,并把它在列表中以及。有什么想法吗?你知道吗

谢谢


Tags: txtlog信息列表sessionvarloginlocation
4条回答

注释代码是实现这一点的唯一方法。但这是你的设计不正确的症状。与其拥有30个类型为String的属性,还不如拥有一个类型为String[]List<String>的属性

然后你可以做:

List<String> list = getListOfStrings();
StringBuilder builder = new StringBuilder();
for (String s : list) {
    builder.append(s);
}
String concatenation = builder.toString();

只需重写示例类中的toString()方法,如下所示:

@Override
public String toString() {
  return someString1 + "  " + someString2 + "  " + someString3;
}

如果这些是标准访问器,那么最好使用Listget(index)

否则反射黑客会有所帮助

public class Example{

  private List<Integer> marks = new ArrayList<Integer>();

现在循环

for(int i= 1; i<=30;i++){
   total += marks.get(i);
}

相关问题 更多 >