反转字符序列的三种方法

来源:互联网 发布:excel没有数据分析 编辑:程序博客网 时间:2024/06/18 15:06

在编写代码的过程中,我们经常需要将一些数字序列或字符序列进行反转,例如将10进制转换成其他进制时需要倒取余数,这时便需要将字符串反转。下面我们介绍三种实现序列反转的方法。

方法一:将单个序列元素依次插入到空字符串前面,示例代码如下:

public static void main(String[] args){Scanner sc = new Scanner(System.in);System.out.println("请输入一个十进制整数:");int num = sc.nextInt();int tmpnum = num;String str = "";int remainder = 0;while(num > 0){remainder = num % 2;num /= 2;//每次将remainder插入到str前面str = remainder + str;}System.out.println(tmpnum + "转换成二进制为:"  + str);}
方法二:采用StringBuffer类的append方法和reverse方法,示例代码如下:

public static void main(String[] args){Scanner sc = new Scanner(System.in);System.out.println("请输入一个十进制整数:");int num = sc.nextInt();int tmpnum = num;StringBuffer str = new StringBuffer();int remainder = 0;while(num > 0){remainder = num % 8;num /= 8;str.append(remainder);}str.reverse();System.out.println(tmpnum + "转换成八进制为:"  + str);}
方法三:采用StringBuffer类的insert方法,示例代码如下:

import java.util.Scanner;/*** 输入整数转16进制,顺便测试StringBuffer的insert方法*/public class Test03{public static void main(String[] args){Scanner sc = new Scanner(System.in);System.out.println("请输入一个整数:");int num = sc.nextInt();int tmpnum = num;int remainder = 0;StringBuffer str = new StringBuffer();while(num > 0){remainder = num % 16;switch(remainder){case 15:str.insert(0,"F");break;case 14:str.insert(0,"E");break;case 13:str.insert(0,"D");break;case 12:str.insert(0,"C");break;case 11:str.insert(0,"B");break;case 10:str.insert(0,"A");break;default:str.insert(0,remainder);}num /= 16;}System.out.println(tmpnum + "转换成十六进制为:" + str);}}