首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在搜索特定名称时对行进行子串?

问如何在搜索特定名称时对行进行子串?
EN

Stack Overflow用户
提问于 2014-03-14 03:29:26
回答 1查看 148关注 0票数 1

在我的代码中,我必须打印包名和类名,只要行找到“包”和“类”。如果索引已知,我知道如何进行子字符串/拆分。在我的例子中,包名和类名将在不同的文件中更改,因此有点困惑如何做。例如:

代码语言:javascript
复制
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;“后面还有其他行呢?如何对额外的导入部分进行子字符串。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-14 03:53:50

使用String.indexOf(String)方法查找行中"package“和"class”字符串的第一个位置。然后从这个位置的末尾取子串到第一个分号。就像这样:

代码语言:javascript
复制
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 + " ");
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22395585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档