haw我可以在某个索引处翻转一个整数 例如,我有这个数字1001,我需要从索引2开始翻转它 结果将是1010 这是我尝试过的更简单的方法吗?
public class TEST {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
int code = scan.nextInt();
int index = scan.nextInt();
String s = code + "";
String f = "";
for (int i = s.length() - 1; i >= index; i--) {
f += s.charAt(i);
}
for (int i = 0; i < index; i++) {
f += s.charAt(i);
}
System.out.println(f);
}
}
另一个问题是,如果我有1001它将变为1100,那么我将每个数字向左移动
答案 0 :(得分:3)
您可以使用reverse()
类的StringBuilder
方法来反转该数字,然后将其解析为整数。使用StringBuilder如下:
StringBuilder num = new StringBuilder("1234");
num.reverse(); // is now "4321"
解析整数:
int i = Integer.parseInt(num.toString());
答案 1 :(得分:0)
我相信这就是你要找的东西。这假设您使用0索引系统来选择反转开始的位置。
Scanner scan = new Scanner(System.in);
int code = scan.nextInt();
int index = scan.nextInt();
String s = code + "";
String f = s.substring(0, index);
for(int i = index; i < s.length(); i++)
f += s.charAt(s.length() - (i - index) - 1);
System.out.println(f);
答案 2 :(得分:0)
您的flip
操作,如果我认为您的意思是12345
之类的字符串包含索引[1,2,3,4,5]
而不是[0,1,2,3,4]
˙并且从{{1}的索引开始从1
到1
,包含翻转,您的操作从左到右,然后您可以执行以下操作
5
当然,如果它应该是从右到左,那么你需要弄乱字符串的长度并镜像操作......