黑马程序员技术交流社区
标题: 输入正整数,把第i位和第i+1位互换 [打印本页]
作者: 曹晓涵 时间: 2012-7-27 02:43
标题: 输入正整数,把第i位和第i+1位互换
----------------此题来源于我的期末考试历年真题一直苦于没有学长整理答案,希望黑马会做的同学帮写下答案或纠正我的解法方便我整理答案备考---------------
题目:输入正整数,把第i位和第i+1位互换,比如1234,变成2143,12345变成103254(当输入的整数为奇数时,在第一位补0变成偶数位,然后将第2i-1位与第2i位互换)
解答:Exchange.java
- import java.util.Scanner;
- class Exchange
- {
- public static void main(String args[])
- {
- Scanner scanner = new Scanner(System.in);
- System.out.println("请输入一个整数");
- String str = scanner.next();
- System.out.println("你所输入的整数为"+str);
- String stri;
- //System.out.println(str.length()/2);
- if((str.length()%2)==0)
- stri = str;
- else
- stri = "0"+str;
- char[] ch = stri.toCharArray();
- for(int i=0;i<ch.length/2;i++)
- {
- int a = 2*i;
- int b = 2*i+1;
- swap(ch,a,b);
- }
- StringBuffer sb = new StringBuffer();
- for(int i = 0; i < ch.length; i++){
- sb.append(ch[i]);
- }
- String newStr = sb.toString();
- System.out.println("第i位和第i+1位调换后的整数位为:"+newStr);
- }
- public static void swap(char[] ch,int x,int y)
- {
- char temp = ch[x];
- ch[x]=ch[y];
- ch[y]=temp;
- }
- }
复制代码
运行:
作者: 王渠 时间: 2012-7-27 15:20
- import java.util.Scanner;
- public class Exchange {
- public static void main(String[] args) {
- Scanner input = new Scanner(System.in);
- System.out.print("请输入一个整数:");
- String s = input.next();
- System.out.println("你所输入的是:" + s + "\n调整后的是:" + exChange(s));
- }
- //这是转换用的方法。
- public static String exChange(String s) {
- char[] nums;
- String changed = "";
- if (s.length() % 2 == 1) {//用来判断长度是偶数还是奇数,然后做不同处理。
- s = "0"+s;
- }
- nums = s.toCharArray();
- for (int size = 0; size < nums.length; size += 2) {//开始交换
- char temp = nums[size];
- nums[size] = nums[size + 1];
- nums[size + 1] = temp;
- changed = changed + nums[size] + nums[size + 1];
- }
- return changed;
- }
- }
复制代码 这个是我写的一个方法呢!
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |