黑马程序员技术交流社区

标题: 数组中的两个元素交换位置出现问题, 求解答! 谢谢! [打印本页]

作者: 星空@3    时间: 2016-6-22 22:44
标题: 数组中的两个元素交换位置出现问题, 求解答! 谢谢!
问题是: 用//注释的  我用异或交换两个元素不成功,请问为什么?

  1. package com.itcast.shuzu;
  2. import java.util.Scanner;
  3. public class Demo7_StringPaiXu {
  4. /*
  5. *
  6. 4.键盘录入一个字符串,格式:"12 78 34 56 67 45 23 89";(要求字符串是由数字和空格组成的)
  7.    将字符串中的数字排序格式:"12 23 34 45 56 67 78 89";(要求不能使用Arrays.sort()方法,结果为字符串)
  8.    把字符串中所有的"6"替换成"9";
  9. */
  10.         public static void main(String[] args) {
  11.                 Scanner sc = new Scanner(System.in);
  12.                 System.out.println("请输入一个数字字符串序列");
  13.                 String s = sc.nextLine();
  14.                
  15.                 String[] str = s.split(" ");
  16.                 int[] arr = new int[str.length];
  17.                 for (int i = 0; i < str.length; i++) {
  18.                         //Integer i1 = new Integer(str[i]);
  19.                         arr[i] = Integer.parseInt(str[i]);
  20.                          
  21.                 }
  22.                 for (int i = 0; i < arr.length; i++) {
  23.                         System.out.print(arr[i]+" ");
  24.                 }
  25.                 System.out.println();
  26.                 System.out.println("=============");
  27.                
  28.                 //排序:冒泡排序
  29.                 for (int i = 0; i < arr.length-1; i++) {
  30.                         for (int j = 0; j < arr.length-1-i; j++) {
  31.                                 if(arr[j] > arr[j+i]){
  32.                                         int temp = arr[j];
  33.                                         arr[j] = arr[j+1];
  34.                                         arr[j+1] = temp;
  35. //                                        arr[j]   = arr[j] ^ arr[j+1];
  36. //                                        arr[j+1] = arr[j] ^ arr[j+1];
  37. //                                        arr[j]   = arr[j] ^ arr[j+1];
  38.                                 }
  39.                         }
  40.                 }
  41.                 //打印数组
  42.                 StringBuilder sb = new StringBuilder();
  43.                 for (int i = 0; i < arr.length; i++) {
  44.                         if(i == arr.length-1){
  45.                                 sb.append(arr[i]);
  46.                         }else
  47.                                 sb.append(arr[i] + " ");
  48.                 }
  49.                 System.out.println(sb);
  50.                
  51.                 String str1 = sb.toString();
  52.                 String str2 = str1.replace("6", "9");
  53.                 System.out.println(str2);
  54.         }

  55. }
复制代码

作者: Ake丶    时间: 2016-6-22 22:59
异或应该没错的。你自己调试看看
作者: 星空@3    时间: 2016-6-22 23:41
Ake丶 发表于 2016-6-22 22:59
异或应该没错的。你自己调试看看

调得过我就不用发帖了~
作者: Ake丶    时间: 2016-6-22 23:54
星空@3 发表于 2016-6-22 23:41
调得过我就不用发帖了~

哪有程序调不出来的啊。。调到哪一步和你预期的不一样不就找到了啊
作者: 星空@3    时间: 2016-6-23 20:53
问题找到了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2