「java换位算法」换位运算符

博主:adminadmin 2023-01-25 04:39:07 357

本篇文章给大家谈谈java换位算法,以及换位运算符对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

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数组元素位置交换?

题目很简单,关键是思路

先找出最大值、最小值,并记住其位置

再做交换

具体参考下列代码

import java.util.Arrays;

public class Test {

/**

 * @param args

 */

public static void main(String[] args) {

// 第一步:定义数组

int[] arrs = { 6, 2, 9, 15, 1, 5, 20, 7, 18 };

// 第二步:找出最大值、最小值

int maxIndex = 0; // 最大值初始索引 = 0

int max = arrs[maxIndex];

int minIndex = 0; // 最小值初始索引 = 0

int min = arrs[minIndex];

for (int i = 1; i  arrs.length; i++) {

if (arrs[i]  max) {

max = arrs[i];

maxIndex = i;

}

if (arrs[i]  min) {

min = arrs[i];

minIndex = i;

}

}

System.out.printf("第[%d]个值是最大值:%d \n", (maxIndex + 1), max);

System.out.printf("第[%d]个值是最小值:%d \n", (minIndex + 1), min);

System.out.println("开始交换最大值");

int end = arrs[arrs.length - 1]; // 记录最后一个元素值

arrs[arrs.length - 1] = max; // 最后一个元素值 = max

arrs[maxIndex] = end; // 原最大值 = 最后一个值

int start = arrs[0]; // 记录第一个元素值

arrs[0] = min; // 第一个元素值 = min

arrs[minIndex] = start; // 原最小值 = 第一个值

System.out.println("最终结果:");

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

}

}

亲,答题也需要时间和精力,如果回答满意,请及时采纳,你的合作是我回答的动力!! 谢谢!!

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.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操作输入一个数字,将最高位和最低位换位,次高位与次低位换位,以此类推,如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.*;

class Test{

    public static void main(String[] args){

        int[] arr=new int[10];

        for(int i=0;iarr.length;i++){

            int a=(int)(Math.random() * 100);

            arr[i]=a;

        }

        System.out.format("移动前:%s%n", Arrays.toString(arr));

        int[] dst=new int[arr.length];

        System.arraycopy(arr,0,dst,1,arr.length-1);

        dst[0]=arr[arr.length-1];

        arr=dst;

        System.out.format("移动后:%s", Arrays.toString(arr));

    }

}

关于java换位算法和换位运算符的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。