java - 是否可以将几个 StringArray 值写入一个 String 中?

标签 java arrays string

我正在尝试将 String 数组的一部分写入 String 但我遇到了一个问题。 line 值的处理总是这样的:“status.test.status.close.name = Closed”。 该值的唯一静态值是“status”。和“.name”。我只想获取“status”之间的部分。和“.name”。使用下面的代码我得到这个结果:“status.test.status.close”。我现在的问题是,是否可以删除array的一部分,例如:technicalNames.delete["status."];?或者有人有其他提示如何实现它吗?

public void setTechnicalName(File javaFile) throws IOException {
    if(javaFile.exists()) {
        BufferedReader reader = new BufferedReader(new FileReader(javaFile));
        String line = null;
        while((line = reader.readLine()) != null)
        if (line.contains("In approval") || line.contains("In Approval") || line.contains("In review") || line.contains("In Review") || line.contains("Closed")){
                System.out.println(line);
                String[] technicalNames = line.split(".name");
                String technicalName = technicalNames[0];
                System.out.println(technicalName);

        }

        reader.close();
    }
}

这是我读出的 .xml 文件:

status.test.status.close.name      = Closed
status.test.status.in.approval.name = In approval
status.test.status.in.review.name     = In review

test.field.approver1      = Approver
test.field.lookupworkflow = 
test.field.temp           = temp

提前致谢!

最佳答案

我假设您对 status.name 之间的部分感兴趣。你可以尝试一下这个方法。

public  static void setTechnicalName(File javaFile) throws IOException {
    if(javaFile.exists()) {
        BufferedReader reader = new BufferedReader(new FileReader(javaFile));
        String line = null;
        int statusOffet = "status.".length();
        while((line = reader.readLine()) != null){
            int indexOfStatus = line.indexOf("status");
            int indexOfName = line.lastIndexOf(".name");                
            boolean isReqLine = line.contains("In approval")
                                        || line.contains("In Approval")
                                        || line.contains("In review")
                                        || line.contains("In Review") 
                                        || line.contains("Closed");

            if(isReqLine && indexOfStatus != -1 && indexOfName != -1){
                System.out.println(line);
                String stage = line.substring(indexOfStatus + statusOffet, indexOfName); 
                System.out.println(stage);
            }

        }
        reader.close();
    }
}

编辑:根据匹配格式的注释,我在计算偏移量时包含了 "." 并使用了 indexOf

关于java - 是否可以将几个 StringArray 值写入一个 String 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27223634/

相关文章:

c++ - 是否有安全版本的 strlen?

java - 了解所有线程何时完成并处理异常

java - 即时运行 : Couldn't apply code changes

java - 使用 JWT 的基于角色的 Rest-API

在c中调用函数int strrindex(char s[], char t[])而不传递size参数

c# - 如何在 if 语句中使用 != 和字符串数组?

java - java中将字符插入字符串的最快方法是什么?

java - 用于定位 iram 并切换到它的循环不起作用

arrays - Swift:按项目类型对[Any]数组进行排序

C#:具有相同内容的字符串