Java 将整数的最后一位移到第一位,怎么表达,自认为像个十百千这样运算也不方便,会花费很长时间,有什么思路可以提供吗,谢谢啦
可以先把数字转为String,然后转字符,再交换第一位跟最后一位位置
public static void main(String[] args) {
int number = 12345;
int result = test(number);
System.out.println(result);
}
public static int test(int number) {
String numStr = String.valueOf(number);
char last= numStr.charAt(numStr.length() - 1);
String modifiedStr = last+ numStr.substring(0, numStr.length() - 1);
return Integer.parseInt(modifiedStr);
}
对象的序列化主要有两种用途:
Serializable 接口
一个对象想要被序列化,那么它的类就要实现此接口或者它的子接口。
这个对象的所有属性(包括private属性、包括其引用的对象)都可以被序列化和反序列化来保存、传递。不想序列化的字段可以使用transient修饰。
由于Serializable对象完全以它存储的二进制位为基础来构造,因此并不会调用任何构造函数,因此Serializable类无需默认构造函数,但是当Serializable类的父类没有实现Serializable接口时,反序列化过程会调用父类的默认构造函数,因此该父类必需有默认构造函数,否则会抛异常。
问题解答:
感谢您的提问。要实现将一个整数的最后一位向左移,移到二进制数字的最高位,即第一位,可以使用位运算来实现,具体代码如下:
public static int moveLastToFirst(int num) {
// 获取num的二进制补码的位数
int len = Integer.SIZE - Integer.numberOfLeadingZeros(num);
// 将最后一位的数值(0或1)取出来,同时将原数最后一位清零
int last = num & 1;
num = num >> 1;
// 将取出的数值移动到最高位
num = num | last << (len - 1);
return num;
}
对于实现原理,可以通过以下步骤实现:
Integer.SIZE
以及Integer.numberOfLeadingZeros()
方法来实现。以上就是一个比较简单的实现,具体使用还需要根据实际情况进行调整。希望能够对您有所帮助!
你可以将整数转换为字符串,然后将字符串的最后一位移到第一位,再将其转换回整数。以下是一个示例代码:
public static int moveLastDigitToFirst(int n) {
String s = Integer.toString(n);
char last = s.charAt(s.length() - 1);
String rest = s.substring(0, s.length() - 1);
return Integer.parseInt(last + rest);
}
这个方法将整数转换为字符串,然后使用 charAt() 方法获取最后一位字符,使用 substring() 方法获取除最后一位字符外的其余字符。最后,将最后一位字符和其余字符连接起来并将其转换回整数。
public class Main {
public static void main(String[] args) {
int x = 900021;
int z = x % 10;
int y = x;
while (y > 0) {
y /= 10;
z *= 10;
}
x = x / 10 + z / 10;
System.out.println(x);
}
}