「java数字交换前后位置」java交换整数的某两位

博主:adminadmin 2023-03-17 15:26:06 245

今天给各位分享java数字交换前后位置的知识,其中也会对java交换整数的某两位进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java操作输入一个数字,将最高位和最低位换位,次高位与次低位换位,以此类推,如123456交换后654321?

import java.util.Scanner;

public class test{

public static void main(String[] args) {

System.out.print("请输入一个数字:");

int num = new Scanner(System.in).nextInt();

while (num0) {

if (num=0) {

break;

}

System.out.println("请输入一个大于0的数!");

System.out.print("请输入一个数字:");

num = new Scanner(System.in).nextInt();

}

String strNum = ""+num+"";

String temp = "";

int i = strNum.length() - 1;

while (i = 0) {

temp+=strNum.substring(i,i+1);

i--;

}

System.out.println(num+" 反转后是:"+temp);

}

}

答案在此,方法是这样的:将输入的数字装化成字符串,然后使用字符串的subString这个方法截取字符串,然后使用while循环,将字符串依次从末尾向前截取,最后拼接成的字符串,就是反转后的数

java中输入一个整数,交换其个位和十位上的数字后输出?

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

Scanner sc=new Scanner(System.in);

int a=sc.nextInt();

sc.close();

System.out.println("调换前"+a);

//因为要调换个位和十位,所以通过求余把个位和十位的数取出来

int b=a%100;

//进行调换

b=(b%10)*10+b/10;

//然后通过(a/100)*100的操作是将个位和十位变成00

//例如12345 操作以后就是12300,再加上调换后的b就组成了12354

b=(a/100)*100+b;

System.out.println("调换后"+b);

}

}

java 一个数组分割成两部分,它们的位置前后互换的算法!

package com.shijie.java.test; import java.util.Scanner; public class test { public static void main(String[] args) { int[] a = new int[] { 1, 2, 3, 4, 5 }; int a2[] = new int[4]; for (int i = 0; i a.length; i++) {// 打印数据 System.out.println(a[i]); } System.out.println("请输入需要分割互换的数字!"); Scanner scnner = new Scanner(System.in); int res = scnner.nextInt(); for (int i = 0; i a.length; i++) { if (a[i] == res) { for (int j = 0; j a.length - i; j++) { a2[j] = a[j + i]; } if (i != 0) { for (int j2 = 0; j2 i; j2++) { a2[i + j2 - 1] = a[j2]; } } } } for (int i = 0; i a2.length; i++) {// 打印数据 System.out.println(a2[i]); } } }

记得采纳啊

java 字符串颠倒和换位

import java.text.CharacterIterator;

import java.text.StringCharacterIterator;

import java.util.Arrays;

/**

* 一开始的数字是12345678,全部加上1以后是23456789,然后第一位和最后一位颠倒,

* 变成93456782,然后在把这组数字顺序颠倒,变成28765439~ 就是这意思

*

* @author Gao

* @version 2009-7-29

*

*/

public class Test

{

public static void main(String[] args)

{

String a = "12345678";

String b = "";

// 使用了java.text.CharacterIteraoter类来迭代字符串

CharacterIterator ci = new StringCharacterIterator(a);

int[] nums = new int[a.length()];// 创建一个数组, 他的长度等于字符串的长度

int i = 0;

for (char ch = ci.first(); ch != CharacterIterator.DONE; ch = ci.next())

{

// 判断当前字符是否为数字

if (Character.isDigit(ch))

{

int n = Integer.parseInt(String.valueOf(ch));

nums[i++] = n + 1;

}

}

swap(nums);// 交换头和尾

reverse(nums);// 颠倒数组内所有元素

System.out.println(Arrays.toString(nums));

}

/**

* 交换头和尾两个值

*

* @param nums

*/

private static void swap(int[] nums)

{

// 判断数组是否足够大,如果元素小于1则没有交换的可能

if (nums.length 1)

{

int len = nums.length - 1;

int tmp = nums[0];

nums[0] = nums[len];

nums[len] = tmp;

}

}

/**

* 颠倒数组内所有元素

*

* @param nums

*/

private static void reverse(int[] nums)

{

// 这里可能数据量大的话会有性能问题, 一时没想到好的算法~.~

for (int i = 0; i nums.length; i++)

{

for (int j = i; j nums.length; j++)

{

int tmp = nums[i];

nums[i] = nums[j];

nums[j] = tmp;

}

}

}

}

因为你也是新学的,所以没有使用太多集合类, 还是原始一点儿好, 集合类也不过就是把这些过程进行了封装而已, 而且总是用集合类也无助于基础只是的学习

java数字交换前后位置的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java交换整数的某两位、java数字交换前后位置的信息别忘了在本站进行查找喔。