Java - 将数字分成 3 部分
Java - separate number into 3 parts
假设我有以下号码:
36702514
我想把上面的数字分成3个部分,分别是36、702、514。
下面是我试过的代码:
int num = 36702514;
int num1 = num.substring(0, 2);
int num2 = num.substring(2, 3);
int num3 = num.substring(5, 3);
我写的对吗?
您需要在 Java String
上使用 substring()
,而不是原始 int
。使用 String.valueOf()
:
将您的号码转换为 String
int num = 36702514;
String numString = String.valueOf(num);
int num1 = Integer.parseInt(numString.substring(0, 2));
int num2 = Integer.parseInt(numString.substring(2, 5));
int num3 = Integer.parseInt(numString.substring(5, 8));
List<String> myNumbers = Arrays.asList(
NumberFormat.getNumberInstance(Locale.US).format(36702514).split(","));
我的解决方案在美国语言环境中构建了逗号分隔的 String
输入:
36,702,514
这个 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);
Am I writing correct?
不,你不是,你会得到编译时错误
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);
编辑:将数字存储在数组中而不是单独的变量中。
假设我有以下号码:
36702514
我想把上面的数字分成3个部分,分别是36、702、514。
下面是我试过的代码:
int num = 36702514;
int num1 = num.substring(0, 2);
int num2 = num.substring(2, 3);
int num3 = num.substring(5, 3);
我写的对吗?
您需要在 Java String
上使用 substring()
,而不是原始 int
。使用 String.valueOf()
:
String
int num = 36702514;
String numString = String.valueOf(num);
int num1 = Integer.parseInt(numString.substring(0, 2));
int num2 = Integer.parseInt(numString.substring(2, 5));
int num3 = Integer.parseInt(numString.substring(5, 8));
List<String> myNumbers = Arrays.asList(
NumberFormat.getNumberInstance(Locale.US).format(36702514).split(","));
我的解决方案在美国语言环境中构建了逗号分隔的 String
输入:
36,702,514
这个 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);
Am I writing correct?
不,你不是,你会得到编译时错误
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);
编辑:将数字存储在数组中而不是单独的变量中。