在我的代码中,我必须打印包名和类名,只要行找到“包”和“类”。如果索引已知,我知道如何进行子字符串/拆分。在我的例子中,包名和类名将在不同的文件中更改,因此有点困惑如何做。例如:
package com.sify;import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class WriteJava{
}
public class WriteJava2{
}产出应该是;
包名: com.sify类名: WriteJava类名: WriteJava2
任何帮助都是值得赞赏的。
提前谢谢。
稍微修改了我的代码。如果代码中给出的"package com.sify;“后面还有其他行呢?如何对额外的导入部分进行子字符串。
发布于 2014-03-14 03:53:50
使用String.indexOf(String)方法查找行中"package“和"class”字符串的第一个位置。然后从这个位置的末尾取子串到第一个分号。就像这样:
String line;
while ((line = readLine()) != null) {
String packageName = null, className = null;
int indexOfPackage = line.indexOf("package");
int indexOfClass = line.indexOf("class");
int indexOfBrace = line.indexOf('{');
int indexOfSemiColon = line.indexOf(';');
int classStringLength = "class ".length();
int packageStringLength = "package ".length();
if (indexOfPackage != -1) {
packageName = line.substring(indexOfPackage + packageStringLength, indexOfSemiColon);
}
if (indexOfClass != -1) {
className = line.substring(indexOfClass + classStringLength, indexOfBrace);
}
System.out.println("Package Name: " + packageName + " ");
System.out.print("Class Name: " + className + " ");
}https://stackoverflow.com/questions/22395585
复制相似问题