我的代码编译,但是当我尝试使用该方法来加扰.wav文件时,我收到错误
以下是导致问题的代码:
public Sound scrambleSound(){
SoundSample[] sampleArray = this.getSamples();
ArrayList<Integer> sounds = new ArrayList<Integer>(0);
String origin = "";
for(SoundSample s : sampleArray){
origin = "" + s.getValue();
for(int i = 0; i<origin.length();i++){
int n = Integer.parseInt(origin.substring(i,i+1)); //the error is here
if(i == origin.length() - 1){
Integer q = new Integer((int)(Math.pow(3,n))+2);
sounds.add(q);
}
else{
Integer w = new Integer((int)(Math.pow(3,n))+1);
sounds.add(w);
}
}
}
Sound sound1 = new Sound(sounds.size());
for(int z = 0; z<sounds.size(); z++){
sound1.setSampleValueAt(z, sounds.get(z).intValue());
}
return sound1;
}
答案 0 :(得分:0)
你有
for(int i = 0; i<origin.length();i++){
这应该是
for(int i = 0; i<origin.length()-1;i++){
因为在你的子字符串中,你正在看i + 1。您可能需要考虑使用origin.charAt(i)
,这是通常的方法,您不需要调整循环边界。但是,子字符串可以很好地修改循环。另外,您可能会尝试将-
中的-1
这样的字符转换为整数,也许是试用?