我正在尝试将 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/