gpt4 book ai didi

java - 将数组的所有元素向右移动

转载 作者:行者123 更新时间:2023-12-01 19:19:20 25 4
gpt4 key购买 nike

所以我得到了一个大小为 22 的数组,它从控制台读取一个数字并将该数字添加到数组中。所以如果在数组中读取 123456 将打印出来

12345600000000...类似的东西。

我需要右对齐这个数字来执行算术运算,但我似乎无法让循环结构正确地输出该数字!

int[] newlong = new int[22];
String inputline = "";

public void readNewLong()
{
Scanner in = new Scanner(System.in);
inputline = in.nextLine();

try
{
for (int i = 0; i < inputline.length(); i ++)
{
char a = inputline.charAt(i);
String b = "" + a;
newlong[i] = Integer.parseInt(b);
}

}
catch (NumberFormatException nfe)
{
System.out.println("NumberFormatException, you must enter a string of digits. " + nfe.getMessage());
}
}

这就是读取数字、输入行并将其存储在数组 newLong 中的内容。

下面的方法不起作用...

public void rightJustify()
{
printLong();
System.out.println(inputline.length());

for(int i = 0; i< inputline.length(); i++)
{
for(int j = 0; j < newlong.length; j++)
{
newlong[j] = (newlong[j] - (inputline.length() -i));
}
}
printLong();
}

最佳答案

为什么你要证明实际上你可以按正确的顺序输入?

如果 newlong[] 是全局的,则所有位置均为 0

for (int i = inputline.length()-1; i>=0; i--)
{
char a = inputline.charAt(i);
String b = "" + a;
newlong[22 - inputline.length() + i] = Integer.parseInt(b);
}

已编辑:如果您更喜欢调整方法,我推荐您:

public void rightJustify() {
System.out.println(inputline.length());

for (int i = inputline.length()-1; i>=0; i--) {
newlong[22 - inputline.length() + i] = newlong[i];
newlong[i] = 0;
}
}

关于java - 将数组的所有元素向右移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5060199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com