java - 在Java IO中读取一行多个方括号值

标签 java java-io

我有代码读取一行中包含多个方括号 [] 的文件,我将采用该值(方括号内)并将被另一个字符串替换。问题是我刚刚得到该行中的第一个方括号值,而其他值无法处理。这是我的代码:

if (line.contains("[") && line.contains("]")) {
    getindex = getIndexContent(line);

}

以及获取索引值的方法:

String getIndexContent(String str) {
    int startIdx = str.indexOf("[");
    int endIdx = str.indexOf("]");

    String content = str.substring(startIdx + 1, endIdx);
    return content;
}

这是我读到的包含方括号的文件:

 var[_ii][_ee] = init_value;

嗯,我已经得到了 _ii 值,但是如何获得方括号的第二个值 _ee 呢?我只是想象那个存储在数组中,但我不知道如何?

谢谢。

最佳答案

你可以迭代你的String直到你得到所有 还可以通过在一个方法中返回所有内容来让生活变得轻松:

List<String> getIndexContent(String str) {

 List<String> list = new ArrayList<String>();

 while(true){
    if(!str.contains("[") && !str.contains("]")){
      break;
    }
    int startIdx = str.indexOf("[");
    int endIdx = str.indexOf("]");

    String content = str.substring(startIdx + 1, endIdx);
    list.add(content);
    if(endIdx==str.length()-1){
      break;
    }
    str=str.subString(endIdx+1,str.length());
 }

    return list;
}

注意:

it won't work on nested brackets

关于java - 在Java IO中读取一行多个方括号值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33810069/

相关文章:

Java 程序无法在 linux 中挂载的系统上写入

java - 如果服务器响应超时,使用具有 UNC 路径的 Java File.delete() 会得到什么

java - FileOutputStream 与 OutputStream,为什么以及何时?

java.lang.NoClassDefFoundError : net/sf/json/JSONArray

java - Java当前时间(逻辑错误)时区: US Eastern Time

java - 调用 ImageIO.read(file) 时程序阻塞

java - 使用附加代码的 SSLSocket 通信是否安全?

java.util.logging : Remove date time line

java - 如何使用 Selenium 和 Java 在网页中定位 <image> 标签

java - 在二叉树中找到一个值避免计算器异常