0

我基本上想读取一个文件(可以是 mp3 文件或其他文件)。扫描文件中所有使用的 ASCII 字符,并将它们放入字典、数组或列表中。然后从那里为每个字符分配一个数值。

例如:

假设我加载了文件 blabla.mp3 (显然这种类型的文件是经过编码的,所以它不仅仅是简单的英文字符。)

这是它的内容:

╤dìúúH»╓╒:φººMQ╤╤╤╤┤i↔↔←GGGΦ⌠i←E::2E┤tti←╙╤ΦΦ⌠·:::::%Fæ╤╤:6Å⌠tSN│èëåD¿╢ÄÄÄÄÄÄÄÄÄÅO ^↔:::.ÄÄÄÄÄÄÄèHΦΦ■ï»ó⌐╙-↔→E┤tttttttt}▲î╤╤dì"Ü:::)ú$tm‼º╤╓q╤╙·:.ñÇ°"V├╡ ΦPa↨/úúúúúúΦ╞îHΦ║*ÄèúóΦΦΦΦΦ»DΦΦ·tΘ○_Nïúkî►"DëÜ)#ú»→·:4Äïúúúúúúó¿║:(·:ç↑PR"$RGH◄◘úúó¿ΦΦΦΦ┌&HΦΦ┌+⌠ WºGG╤m→GF╘±"¿ΦñïúúúóΦò↨FæTtt╓ìú⌠ΦΦΦ⌠z:::=:::::≥E╤╤╤╤╤╤╤Tm↔↔▬Hªèi⌠ztz:::tt

我想弄清楚正在使用哪些字符,并为每个字符分配一个从 0 到 255 的值,并且每个值对于该字符都是唯一的。

所以 ╤ = 0; Φ = 56; ú = 25 等等等等

现在我一直在搜索 python 和 java 文档,但我不太确定我知道我在搜索什么。而且我不知道我是否应该担心 ASCII 字符或 HEX 或文件的原始字节。

我只需要有人指出我正确的方向。有什么帮助吗?

4

3 回答 3

1

每个字节 一个从 0 到 255 的数字。包含这些数字的数组准确地说是包含文件内容的数组。我完全不清楚你想用这个数组(或字典等)做什么,但让它变得很容易。

于 2012-05-25T03:16:01.577 回答
0

您读入的每个字节已经是 0 到 255 之间的值(因此是一个字节)。你有理由不能只使用它吗?

于 2012-05-25T03:17:28.050 回答
0

我不清楚你到底想要完成什么。您可以创建一个char长度为 256 的数组。每个条目都存储您要与该索引关联的字符。如果你想走另一条路,我推荐一个HashMap<Character, Integer>. 您可以像这样处理每个新字符:

Map<Character, Integer> map = new HashMap<Character, Integer>();
for (each character c in the file) {
    Integer code = map.get(c);
    if (code == null) {
        // new character
        code = map.size();
        map.put(c, code); // assign next number
    }
    // use code as the encoding for c
}
于 2012-05-25T03:23:13.187 回答