首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从txt文件中捕获字符串的一部分?

从txt文件中捕获字符串的一部分?
EN

Stack Overflow用户
提问于 2012-10-07 12:32:29
回答 3查看 148关注 0票数 3

我有一个这样的文本文件,由";“1022-3,1603-4,2012-5,2489-6分隔;

必须捕获"-“之前的第一部分,并传递给变量,并与毫秒进行比较,如果等于数字,则捕获"-”之后的数字。然后用分号后面的下一个数字,以此类推。

代码语言:javascript
复制
public static long MilliSeconds() {
    // get Calendar instance
    Calendar now = Calendar.getInstance();

    return now.getTimeInMillis();

}

在代码的开头,我需要在这里做这些事情

代码语言:javascript
复制
private void LerArquivo() {
        String lstrNomeArq;
        File arq;
        String lstrlinha;
        long tempoInicio = 0;
        long tempoDecorrido = 0;
        try {

            tempoDecorrido = (RecordSound.MilliSeconds() - tempoInicio); 


            lstrNomeArq = "/Android/data/br.com.couldsys.drumspro/cache/GravaSound.TXT";

            String conteudotexto = "";

            arq = new File(Environment.getExternalStorageDirectory(),
                    lstrNomeArq);
            BufferedReader br = new BufferedReader(new FileReader(arq));

            // pega o conteudo do arquivo texto
            conteudotexto = br.readLine();

            String capturaIndex = ("Conteudo do texto: "
                    + conteudotexto.substring(
                            conteudotexto.indexOf("-") + 1,
                            conteudotexto.indexOf(";",
                                    conteudotexto.lastIndexOf("-"))));


            if (tempoDecorrido == capturatempo) { 

                DrumsProActivity.vsm.playSound(capturaindex);
                // ler a nova linha
                // se chegar ao final do string então para o while
                if (conteudotexto.length() > 0) {
                    executar = false;
                }

            }

        } catch (Exception e) {
            trace("Erro : " + e.getMessage());
        }
    }
EN

回答 3

Stack Overflow用户

发布于 2012-10-07 12:59:47

使用以下更简单的代码:创建一个子字符串数组,每个子字符串包含一个格式为#-#的字符串

代码语言:javascript
复制
string[] MyStr = conteudotexto.split(',');

string sss= MyStr[0];
string sss2= MyStr[1];

……

现在sss是1022-3,sss2是1603-4,依此类推……

然后重用拆分函数:

代码语言:javascript
复制
string[] MyStr2 = sss.split('-');

现在我们有: MyStr2 = 1022 MyStr21 =3

票数 2
EN

Stack Overflow用户

发布于 2012-10-07 13:02:04

可能不是特别优雅,但对我来说只是实用-使用字符串拆分方法。首先拆分为",“

代码语言:javascript
复制
String[] parts = conteudotexto.split(",");

然后使用每个部分(这里是第一个)

代码语言:javascript
复制
String[] subParts = parts[0].split("-");

只是给你所有你需要看的东西,没有危险,没有位置等。

票数 2
EN

Stack Overflow用户

发布于 2012-10-08 09:51:16

我现在需要的是知道如何捕捉文本的一部分。

代码语言:javascript
复制
arq = new File(Environment.getExternalStorageDirectory(),
                    lstrNomeArq);
            BufferedReader br = new BufferedReader(new FileReader(arq));

            // pega o conteudo do arquivo texto
            conteudotexto = br.readLine(); 

文本可能有两个不同的分隔符,第一个数字与第二个数字之间用"-“(破折号)分隔,然后用",”(逗号)分隔

549-8,1019-9,1404-3,1764-3,2208-10,2593-5,2938-9,3264-6,3700-0,4174-7,4585-8,4840-2,5192-9,5540-10,5932-0,

正如已经显示的那样

代码语言:javascript
复制
String[] parte1 = conteudotexto.split(",");

e em seguida

String[] parte2 = parte1[0].split("-");

我尝试做的规则是:在方法开始时,在一毫秒内进行转换,并与文本的第一部分进行比较

类型

**如果valor_milissegundos first part等于文本数,则->进入并运行函数playSound (文本的第二个数字);->转到文本循环中的下一个数字,捕获文本的第二个数字并将其与毫秒进行比较;如果等于,则进入if块并捕获破折号后的第二个数字,依此类推,直到到达文本的末尾。**

方法返回毫秒计算毫秒

代码语言:javascript
复制
public static long MilliSeconds() {
    // get Calendar instance
    Calendar now = Calendar.getInstance();

    return now.getTimeInMillis();

}

我希望能理解我为什么使用谷歌翻译器

谢谢

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12766143

复制
相关文章

相似问题

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