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

Java 返回字符串并在每个不同的字符串中使用它,java,android,Java,Android,我真正想要的是 我在这里的“/mnt/sdcard/files”中有许多文件 我想搜索包含一些已知名称的文件,让我们使用“缓存” 我可以这样列出 public void a(){ File dir = new File("/mnt/sdcard/files"); String[] children = dir.list(); for (String s : children){ if(s.contains("cach

我真正想要的是

  • 我在这里的“/mnt/sdcard/files”中有许多文件

  • 我想搜索包含一些已知名称的文件,让我们使用“缓存” 我可以这样列出

  • 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;
        }
    
系统输出打印项次

输出将是

  • cache.bin
  • newcachete.txt
  • 文件缓存
像这样的

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;
    }
但我真正想要的是,这个函数返回文件的全名,其中包括单词“cache”,并在另一个函数中的不同字符串中为其赋值

例如,如果这个函数返回String=newcachete.txt,那么我可以在另一个类似这样的函数中分配它的值

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;
    }
但由于可能有很多文件包含这个名称,所以我想返回我可以在新函数中指定的所有文件名

比如说

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;
*/

}
公共列表a(){
File dir=新文件(“/mnt/sdcard/files”);
String[]children=dir.list();
ArrayList files=新的ArrayList();
for(字符串s:子项){
如果(s.包含(“缓存”)){
系统输出打印项次;
文件。添加;
}
}
归还文件;
}

如果名称
new
old
具有某种意义,您可以返回一个
Map
,其中键是名称(例如
new
old
)和文件名的值

例如,在你的例子中

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

这样我就可以使用

字符串new=a;字符串old=b

您可以编写(假设
cachenew.bin
cacheold.bin
是您编写的变量):

publicmap a(){
...
映射结果=新的HashMap();
结果.put(“new”,cachenew.bin);
结果.put(“old”,cacheold.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 res=a();
String newS=res.get(“new”);//“new”不是一个好的变量名:-)
字符串oldS=res.get(“old”);

您可以将其存储在数组中。您可以编写一些代码帮助吗?什么是cachenew.bin?它是我随机获取的文件名:)我现在按要求编辑,它会清理并让您更好地理解:)但我如何在下一个函数中使用它,如字符串a=a()[0]索引0和[1];类似的东西我不明白你在问什么我是说这个列表把所有的名字加在一起,我要找的是把不同的值放在不同的字符串中,比如字符串a=包含第一个缓存文件,字符串b=包含第二个缓存文件,但列表结果是[cache1,cache2]但我希望他们每个人都有不同的风格,我会放弃这一票,因为这也会起作用,但不知何故,我自己解决了它,让它变得简单,感谢你的时间和努力,兄弟:))