Java-将数字分成3部分

Java-将数字分成3部分,java,int,Java,Int,假设我有以下号码: 36702514 我想把上面的数字分成3部分,即36702514下面是我尝试的代码: int num = 36702514; int num1 = num.substring(0, 2); int num2 = num.substring(2, 3); int num3 = num.substring(5, 3); 我写的正确吗?您需要在Java字符串上使用substring(),而不是在原语int上使用。使用String.valueOf(),将您的号码转换为String

假设我有以下号码:

36702514
我想把上面的数字分成3部分,即36702514
下面是我尝试的代码:

int num = 36702514;
int num1 = num.substring(0, 2);
int num2 = num.substring(2, 3);
int num3 = num.substring(5, 3);

我写的正确吗?

您需要在Java
字符串上使用
substring()
,而不是在原语
int
上使用。使用
String.valueOf()
,将您的号码转换为
String

这个
字符串
然后被逗号分割,得到原始问题中所需的三个部分

List<Integer> numbers = new ArrayList<>();
Integer n = null;
for (String numb : myNumbers)
{
    try
    {
        n = new Integer(numb);
    }
    catch (NumberFormatException e)
    {
        System.out.println("Wrong number " + numb);
        continue;
    }
    numbers.add(n);
}
System.out.println(numbers);
List number=new ArrayList();
整数n=null;
for(字符串编号:MyNumber)
{
尝试
{
n=新整数(numb);
}
捕获(数字格式)
{
System.out.println(“错误号码”+numb);
继续;
}
编号。添加(n);
}
系统输出打印项次(数字);
我写的对吗

不,您没有,您将得到编译时错误

error: int cannot be dereferenced
num
在这里是一个基元,不能在基元上调用方法

正确的方法是:

int no = 36702514;
String num=String.valueOf(num);
int num1 = Integer.parseInt(num.substring(0, 2));
int num2 = Integer.parseInt(num.substring(2, 3));
int num3 = Integer.parseInt(num.substring(5, 3));

可以使用模逻辑从整数中提取数字

int num1 = num % 10;
int num2 = num / 10 % 10;
int num3 = num /100 % 10;

System.out.print(num1);
System.out.print("\n" + num2);
System.out.print("\n" + num3);

编辑:将数字存储在数组中,而不是单独的变量

模1000或100将是最简单的方法。假设你在提问之前是否尝试过一些东西?@KKLMichael我们是在讨论这个特定的例子还是将任何数字分解成任何数量的排列组合?如果您指的是后者,一种快速的方法是使用
String
操作。这取决于数据类型。如果是字符串查找,则使用字符串拆分操作;如果是int,则可以使用%运算符将其分隔。@KKLMichael您是否只是将某个人的答案复制粘贴到您的问题中并声称您尝试过?这是荒谬的:)is
substring()
返回
int
值,但是
substring()
return
String
你会得到:
错误:不兼容的类型:String不能转换为int
p.s.:(不是下行投票人)我对你的答案投了赞成票,因为它简洁明了。我唯一不喜欢的是,你最终得到的字符串集合可能必须转换成数字。我也投了赞成票,因为如果字符串对你来说是可行的,你可以使用这个方法。我会敦促你把它充实一点,并解释它是如何工作的,这样使用它的人就可以理解它的作用。
error: int cannot be dereferenced
int no = 36702514;
String num=String.valueOf(num);
int num1 = Integer.parseInt(num.substring(0, 2));
int num2 = Integer.parseInt(num.substring(2, 3));
int num3 = Integer.parseInt(num.substring(5, 3));
int num1 = num % 10;
int num2 = num / 10 % 10;
int num3 = num /100 % 10;

System.out.print(num1);
System.out.print("\n" + num2);
System.out.print("\n" + num3);