2013-02-13 99 views
0

还没有在android的编码中遇到过这个问题。那么我如何使用一个变量的值作为一个新变量。如何使用变量的值作为变量

我想把像“file1.mp3”这样的变量的值去掉扩展名,然后将文本追加到变量中,并将其用作变量名,如file1_title.txt和file1_desc.txt。


所以FNAME [1]可能等于file1.mp3

,然后我要创建新的变量

file1_title.txt等于 “歌名一号”

file1_desc.txt等于“文件说明1”

两者都基于fname的值[1]


FNAME [2]等于file2.mp3

file2_title.txt等于 “歌名两个”

file2_desc.txt等于 “描述文件中的两个的”

都基于该值FNAME的[2]


等等

这是如何做到的android

+0

你不能做到这一点。变量必须在编译时声明。关注为什么,而不是如何。你为什么想这样做?你想要达到什么目的? – Simon 2013-02-13 07:26:30

回答

1

不知道这是你在找什么。这是基本的Java字符串格式化。

String attr1 = "song.mp3"; 
String attr2 = attr1.split(".")[0] + ".txt"; 

自然地添加必要的空检查。

== == UPDATE

所以,如果我理解正确的话,你会得到一个文件名(“asd.mp3”)和需要的歌曲名称和其描述。

String attr1 = "song.mp3"; 
String songname = ""; 
String songdesc = ""; 
String[] splitArray = attr1.split("."); 
if(splitArray[0] != null){ 
    String songname = attr1.split(".")[0]; 
    File f = new File(path + songname +".txt"); 
    //I didn't quite understand in what format you get the data, 
    //especially the description. However, it could be in a map 
    //where the songname is the key, as suggested above, and here you would write that description to file(f) 

}

+0

在这个例子中,我想结束两个具有基于原始值的名称的新变量... base variable - > attr1 =“song。MP3" 第一可变 - > SONG_TITLE = “这个标题1” 第二可变 - > song_desc = “这是描述1” 或 基变量 - > attR2位= “stackoverflow.mp3” 第一个变量 - > stackoverflow_title =“这个标题2” 第二个变量 - > stackoverflow_desc =“这说明2” 我从服务器获取基本变量的值,然后创建另外两个本地 – 2013-02-13 06:44:16

+0

在你的评论有这个文件f =新文件(路径+歌名+“.txt”);这是接近,但我想要的是这个字符串(路径+歌名+“.txt”)=“你好世界是价值”; – 2013-02-13 15:57:40

+0

原始变量的VALUE成为新变量的名称的一部分,然后我可以将其设置为任何我想要的值。基本上我想要做的是使用音频文件变量的值用于根据audiofile的VALUE值与NAMES创建两个新变量(标题和说明)。 – 2013-02-13 16:01:57

2

我不是100%确定我理解你的问题的细节,但使用地图。 “钥匙”是歌曲标题,价值将是描述。

一些后续。许多handwaving,没有错误检查。假设一个mp3文件正在进入,并且不知何故,您从MP3文件中的标签读取标题和描述。 YMMV

// TreeMap will sort by titles which seems reasonable 
Map<String, String> songMapTitleToDesc = new TreeMap<String, String>(); 

MyMP3Reader mmp3r = new MyMP3Reader(File inFile); 
String songTitle = mmp3r.getSongTitle(); 
String songDesc = mmp3r.getSongDesc(); 
songMapTitleToDesc.put(songTitle, songDesc); 
mmp3r.close(); // or whatever