当前位置: 首页 > 知识库问答 >
问题:

我得到:不能调用原始类型int的长度()

卫博雅
2023-03-14

我们必须制作一个程序,使用GUI将二进制数转换成十进制数。首先,我在不使用图形用户界面的情况下制作了这个程序,它运行得很好。然后我试着使用GUI,在编写程序的时候,我一直得到一个错误消息,说“不能在原始类型int上调用length()”

    int BinaryNumber, DecimalNumber;
            try {
                BinaryNumber = Integer.parseInt(textFieldtUserBinaryInput.getText());

                DecimalNumber = 0;
                    for (int i = 0; i < BinaryNumber.length(); i++);
                    {
                        Character binary = BinaryNumber.charAt(i);
                        String temp = binary.toString();
                        int tempInt = Integer.parseInt(temp);
                        DecimalNumber = DecimalNumber * 2 + tempInt;
                        textFieldDecimal.setText(Integer.toString(DecimalNumber));
                    }




            }catch (NumberFormatException exp){

                JOptionPane.showMessageDialog(null, "Invalid format for a binary string - Illegal character");
            }
        }

任何输入都非常感谢。谢谢!

这是我在没有尝试做GUI的情况下工作时拥有的

    public static int ConvertToDecimal(String BinaryNumber)
{
    String pattern = "[0-1]*";
    boolean patternMatched = Pattern.matches(pattern, BinaryNumber);  
    if(patternMatched)
    {
        int Decimal = 0;
        for (int d = 0; d < BinaryNumber.length(); d++)
        {
            Character binary = BinaryNumber.charAt(d);
            String temp = binary.toString();
            int tempInt = Integer.parseInt(temp);
            Decimal = Decimal * 2 + tempInt;
        }
        return Decimal;
    }

共有2个答案

柳俊彦
2023-03-14

不能对基元类型调用方法,因为它们不是对象。在代码中,您将“二进制数”和“十进制数”声明为 int,并在下一行中为“二进制数”分配了来自 Integer.parseInt() 的结果。我建议您将二进制数和十进制数声明为整数

*整数似乎也没有长度()方法。也许您正在尝试使用字符串

**可能值得看看如何将二进制字符串值转换为十进制

杨志强
2023-03-14

基元类型没有方法,因为它们不是Java中的对象。在您的代码中,您正在执行BinaryNumber。length(),其中BinaryNumber的类型为int,之前您将BinaryNumber用作String。

 类似资料:
  • 我最近做了一个程序在处理Java加载图像和模糊它,但现在我把这个函数作为一个方法到一个类,得到了这个错误: 无法在原始类型int上调用blurImage(int,int,int) 我的班级: 我的代码调用它: 错误就在这条线上 i、 blurImage(blurDecrement,blurDecrement,round(maxBlur)); 我已经在互联网上搜索了这个问题,但没有得到我想要的东西。

  • 想改进这个问题吗 通过编辑此帖子,添加详细信息并澄清问题。 我对下面的if语句块有问题:

  • 这是我的代码。我想显示月份的名称而不是数字。但是我的代码中有一个错误。 它说“不兼容的类型:可能的有损转换从长到整数”。我的代码中的错误是:-

  • 当函数声明类型参数时: 我应该如何在kotlin中调用原始的未类型化的类型化函数? 在爪哇中,我有: 因为< code>typedFunction声明了一个名为< code>T的类型,并将它的两个参数绑定到这个声明的类型,并且在调用站点上,我循环了多个确切类型未知的值(但已知是安全的,两个参数符合相同的类型),所以我不能按预期的方式调用typedFunction。我得把它铸造成一种原始类型。 如何

  • 我得到这个错误的一个小箭头指向十进制整数。允许小数吗?我要写些什么才能让小数被接受?这是我的代码:

  • JavaScript 允许我们像使用对象一样使用原始类型(字符串,数字等)。JavaScript 还提供了这样的调用方法。我们很快就会学习它们,但是首先我们将了解它的工作原理,毕竟原始类型不是对象(在这里我们会分析地更加清楚)。 我们来看看原始类型和对象之间的关键区别。 一个原始值: 是原始类型中的一种值。 在 JavaScript 中有 7 种原始类型:string,number,bigint,