gpt4 book ai didi

java - 如何在搜索特定名称时对行进行子字符串化?

转载 作者:太空宇宙 更新时间:2023-11-04 06:58:43 24 4
gpt4 key购买 nike

在我的代码中,我必须在该行找到“包”和“类”的地方打印包名称和类名称。如果索引已知,我知道如何进行子串/分割。就像我的例子一样,包名和类名会在不同的文件中发生变化,所以有点困惑如何做到这一点。例如:

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;”之后还有其他行怎么办?如代码中所示。我将如何对额外的导入部分进行子串化。

最佳答案

使用 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 + " ");
}

关于java - 如何在搜索特定名称时对行进行子字符串化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22395585/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com