Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何处理整数并翻转它们_Java_Int - Fatal编程技术网

Java 如何处理整数并翻转它们

Java 如何处理整数并翻转它们,java,int,Java,Int,我能在某个索引处翻转一个整数吗 例如,我有这个数字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.nextI

我能在某个索引处翻转一个整数吗 例如,我有这个数字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);
    }
}
公共类测试{
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
扫描仪扫描=新扫描仪(System.in);
int code=scan.nextInt();
int index=scan.nextInt();
字符串s=代码+“”;
字符串f=“”;
对于(int i=s.length()-1;i>=index;i--){
f+=s.charAt(i);
}
对于(int i=0;i

另一个问题是,如果我将每个数字向左移动,例如,如果我有1001,它将变成1100

您可以使用
StringBuilder
类的
reverse()
方法来反转数字,然后将其解析回整数。按如下方式使用StringBuilder:

    StringBuilder num = new StringBuilder("1234");
    num.reverse(); // is now "4321"
要分析整数,请执行以下操作:

    int i = Integer.parseInt(num.toString());

我相信这就是你要找的。这假设您正在使用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);
Scanner scan=新的扫描仪(System.in);
int code=scan.nextInt();
int index=scan.nextInt();
字符串s=代码+“”;
字符串f=s.substring(0,索引);
对于(int i=索引;i
你的
翻转操作,如果我假设你的意思是像
12345
这样的字符串由索引
[1,2,3,4,5]
组成,而不是
[0,1,2,3,4]
;从
1
的索引开始是从
1
5
的包含翻转,并且你的操作从左到右,然后您可以执行以下操作

    int index = 1;
    String number = "12345";
    String subnumber = number.substring(index - 1); //first index, 0th character
    String reversedNumber = new StringBuilder(subnumber).reverse().toString();
    String result = number.substring(0, index - 1) + reversedNumber;
    System.out.println(result); //54321

当然,如果它应该是从右向左的,那么你需要弄乱字符串的长度并镜像操作…

试试java(a)中定义的位操作。你应该使用十进制整数(1001是千分之一)还是二进制数(1001是9)?(b) 更好地定义你的“翻转”。例如,当我从索引1中翻转“12345”时会发生什么情况?@realpoint我应该是在十进制整数中工作的,我的意思是,在这个索引中,我从右向左翻转数字,例如,在索引1中翻转的12345将变为54321等等,你的索引从零开始(在2处翻转是1001)→1010)或从1开始(在1处翻转是12345→ 54321)?为什么要创建所有这些字符串?它们只会在绳池中漂浮。只需使用StringBuilder。它还可以执行子字符串,效率更高。@ling_jan它简化了索引问题。