C:\j2sdk1.4.2_02\myapp\base>javac StringToFunction.java
StringToFunction.java:6: char cannot be dereferenced
    sum=sumString.charAt(0).getNumericValue();
                        ^
StringToFunction.java:10: char cannot be dereferenced
        case '+': sum=sum+sumString.charAt(i+1).getNumericValue();
                                          ^
StringToFunction.java:10: incompatible types
found   : java.lang.String
required: int
        case '+': sum=sum+sumString.charAt(i+1).getNumericValue();
                         ^
StringToFunction.java:12: char cannot be dereferenced
        case '-': sum=sum-sumString.charAt(i+1).getNumericValue();
                                          ^
4 errors

解决方案 »

  1.   

    //这样可以public class StringToFunction{
      static int sum;
      static String sumString="2+3+5-6";  public static void main(String args[]){
        sum=Character.getNumericValue(sumString.charAt(0));
        
        for(int i=1;i<sumString.length();i++){
          switch(sumString.charAt(i)){
            case '+': sum=sum+Character.getNumericValue(sumString.charAt(i+1));
                      break;
            case '-': sum=sum-Character.getNumericValue(sumString.charAt(i+1));
                      break;
            default:;
          }
        }     System.out.println(""+sum);
       } 
     }
      

  2.   

    //这样也可以public class StringToFunction{
      static int sum;
      static String sumString="2+3+5-6";  public static void main(String args[]){
       try
       {  
        sum = Integer.parseInt(sumString.substring(0, 1));     for(int i=1;i<sumString.length();i++){ 
          switch(sumString.charAt(i)){
            case '+': 
             sum=sum + Integer.parseInt(sumString.substring(i + 1, i + 2));
                break;
            case '-': 
             sum=sum - Integer.parseInt(sumString.substring(i + 1, i + 2));
                break;
            default:;
          }
          
        }

         System.out.println(""+sum);
     }catch(Exception e)
     {
      System.out.println(e.getMessage());
     }
       } 
     }
      

  3.   

    sorry,刚才没有仔细看
    你的sumString是类中的数据成员
    你要在静态方法main中引用,怎么也要先创建一个类的对象啊
    或者把计算方法封装在一个成员方法里
    总之要在main中创建类的实例
    再调用数据成员或者方法成员
      

  4.   

    试试看先把String 用GetBytes转换成Byte数组,然后在转成int型来进行数值运算