String s = "yangyouhua";
  int i = Integer.parseInt(s);
  System.out.println(i);  以上转化会报错如下:
  Exception in thread "main" java.lang.NumberFormatException: For input string: "yangyouhua"
  如果改为:
   String s = "3";   //此处给出的四一个整型的数的字符。
   int i = Integer.parseInt(s);
   System.out.println(i);   以上代码考验正常运行。
  本人才学Java,希望高手多多指教,帮助我解惑,在下感激不尽! 

解决方案 »

  1.   

    public static int parseInt(String s)
                        throws NumberFormatException将字符串参数作为有符号的十进制整数进行解析。除了第一个字符可以是用来表示负值的 ASCII 减号 '-' ('\u002D') 外,字符串中的字符都必须是十进制数字。返回得到的整数值,就好像将该参数和基数 10 作为参数赋予 parseInt(java.lang.String, int) 方法一样。 参数:
    s - 包含要解析的 int 表示形式的 String。 
    返回:
    用十进制参数表示的整数值。 
    抛出: 
    NumberFormatException - 如果字符串不包含可解析的整数。
    看了API你还不明白吗?
      

  2.   

    "yangyouhua"不是数字,转不了整数
      

  3.   

    一句话 ,不是什么都可以 转为 数字的 看看异常就知道了  
    ava.lang.NumberFormatException
      

  4.   

    一句话 ,不是什么都可以 转为 数字的 看看异常就知道了  
    ava.lang.NumberFormatException 
      

  5.   


    一切尽在api,作死的翻。
      

  6.   

    NumberFormatException 是类型转换错误,正如雌不能转为雄一样。字符串不能转换为数字。
      

  7.   

    那样肯定出异常,api对初学者来说是个好东西啊
      

  8.   

    可以用循环来获取s的每一个字符,然后通过数组一一进行返回成int型
      

  9.   

    /**
     * 字符转换
     */
    public String chanA(String str1)
    {
    String str = "";
    try
    {
    str = new String(str1.getBytes("GB2312"), "ISO-8859-1");
    } catch (Exception e)
    {
    e.printStackTrace();
    }
    return str;
    } /**
     * 字符转换
     */
    public String chanB(String str1)
    {
    String str = "";
    try
    {
    str = new String(str1.getBytes("UTF-8"), "GB2312");
    } catch (Exception e)
    {
    e.printStackTrace();
    }
    return str;
    }
      

  10.   

    你应该仔细看看API。
    parseInt
    public static int parseInt(String s,
                               int radix)
                        throws NumberFormatException使用第二个参数指定的基数,将字符串参数解析为有符号的整数。除了第一个字符可以是用来表示负值的 ASCII 减号 '-' ('\u002D’)外,字符串中的字符必须都是指定基数的数字(通过 Character.digit(char, int) 是否返回一个负值确定)。返回得到的整数值。 
    如果发生以下任意一种情况,则抛出一个 NumberFormatException 类型的异常: 第一个参数为 null 或一个长度为零的字符串。 
    基数小于 Character.MIN_RADIX 或者大于 Character.MAX_RADIX。 
    假如字符串的长度超过 1,那么除了第一个字符可以是减号 '-' ('u002D’) 外,字符串中的任何字符都不是指定基数的数字。 
    字符串表示的值不是 int 类型的值。 
    示例: parseInt("0", 10) 返回 0
    parseInt("473", 10) 返回 473
    parseInt("-0", 10) 返回 0
    parseInt("-FF", 16) 返回 -255
    parseInt("1100110", 2) 返回 102
    parseInt("2147483647", 10) 返回 2147483647
    parseInt("-2147483648", 10) 返回 -2147483648
    parseInt("2147483648", 10) 抛出 NumberFormatException
    parseInt("99", 8) 抛出 NumberFormatException
    parseInt("Kona", 10) 抛出 NumberFormatException
    parseInt("Kona", 27) 返回 411787参数:
    s - 包含要分析的整数表示形式的 String
    radix - 分析 s 时使用的基数。 
    返回:
    使用指定基数的字符串参数表示的整数。 
    抛出: 
    NumberFormatException - 如果 String 不包含可分析的 int。--------------------------------------------------------------------------------parseInt
    public static int parseInt(String s)
                        throws NumberFormatException将字符串参数作为有符号的十进制整数进行分析。除了第一个字符可以是用来表示负值的 ASCII 减号 '-' ('\u002D') 外,字符串中的字符都必须是十进制数字。返回得到的整数值,就好像将该参数和基数 10 作为参数赋予 parseInt(java.lang.String, int) 方法一样。 参数:
    s - 包含要分析的 int 表示形式的 String。 
    返回:
    用十进制参数表示的整数值。 
    抛出: 
    NumberFormatException - 如果字符串不包含可分析的整数。