返回字符串并在每个不同的字符串中使用它

时间:2015-04-27 06:18:04

标签: java android

public void a(){

        File dir = new File("/mnt/sdcard/files");
        String[] children = dir.list();

        for (String s : children){

            if(s.contains("cache")){

            System.out.println(s);

            // Means Found
            Toast.makeText(getApplicationContext(), "Found", Toast.LENGTH_SHORT).show();

            }
        }

        // Means No Found
        Toast.makeText(getApplicationContext(), "Not Found", Toast.LENGTH_SHORT).show();
        return;
    }

我实际上正在寻找的是像

  • 我在“/ mnt / sdcard / files”中有很多文件

  • 我想搜索包含一些已知名称的文件,让我们拿“Cache” 我可以像这样列出

  

的System.out.println(一个或多个);

输出

  
      
  • cache.bin
  •   
  • newcachete.txt
  •   
  • filecache
  •   

类似这样的事情

但我真正想要的是这个函数返回包含单词“cache”的文件的全名,并在另一个函数中不同的字符串中赋值

例如,如果此函数返回String = newcachete.txt,以便我可以在其他函数中分配其值

public void newfunction(){

String new = a();
// this string will contain newcachete.txt

}

但由于可能有很多文件包含此名称所以我想返回我可以在新功能中分配的所有文件名

例如

public void newfunction(){

String new = a();
// this string will contain newcachete.txt
// and like that i want it to conatain every different name
/*
String a = cachenew.bin;
String b = filecachete.txt;
*/

}

在不同的功能 任何可能的方式?

感谢您的回答我感谢您给我的时间:)

我正在寻找更好的答案

2 个答案:

答案 0 :(得分:1)

public List a(){

    File dir = new File("/mnt/sdcard/files");
    String[] children = dir.list();
    ArrayList <String> files = new ArrayList <String> ();

    for (String s : children){

        if(s.contains("cache")){

          System.out.println(s);
          files.add (s);

        }
    }

    return files;
}

答案 1 :(得分:0)

如果名称newold具有某些含义,您可以返回Map<String,String>,其中键是名称(例如newold )和文件名的值。

例如,在你的例子中

  

String a = cachenew.bin;字符串b = cacheold.bin;

     

以便我可以使用

     

String new = a; String old = b;

你可以写(假设cachenew.bincacheold.bin是变量,就像你写的那样):

public Map<String,String> a() {
  ...


    Map<String, String> result = new HashMap<String,String>();

    result.put("new", cachenew.bin);
    result.put("old", cacheold.bin);

    return result;
}

然后将其用作

Map<String, String> res = a();

String newS = res.get("new");   // "new" is not a good variable name :-)
String oldS = res.get("old");