「java数字交换前后位置」java交换整数的某两位
今天给各位分享java数字交换前后位置的知识,其中也会对java交换整数的某两位进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java操作输入一个数字,将最高位和最低位换位,次高位与次低位换位,以此类推,如123456交换后654321?
- 2、java中输入一个整数,交换其个位和十位上的数字后输出?
- 3、java 一个数组分割成两部分,它们的位置前后互换的算法!
- 4、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数字交换前后位置的信息别忘了在本站进行查找喔。