尝试在Java中加扰.wav文件时,我不断收到此错误:java.lang.NumberFormatException.forInputString(Unknown Source)

时间:2014-03-02 02:59:26

标签: java wav

我的代码编译,但是当我尝试使用该方法来加扰.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;
  }

1 个答案:

答案 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这样的字符转换为整数,也许是试用?