面试中关于字符串的操作
1、将一个由数字组成的字符串变为数字类型:
编写一个类Number:
提供两个方法:
paraseInt:将字符串变为整形
parseDouble:将字符串变为浮点型
public class Number{public static int parseInt(String str){int result=0;int sign=1;//符号位,默认为正int i=0;if(str.charAt(i)=='-'){//判断数字前面是否有符号,若有并且是-,那么是负数sign=-1;}if(str.charAt(i)=='+'|| str.charAt(i)=='-'){//如果有符号位,则需要从第二个字符开始转换i++;}for(int j=i;j<str.length();j++){if(str.charAt(j)>='0' && str.charAt(j)<='9'){result=result*10+str.charAt(j)-'0';}else{throw new NumberFormatException();}}return result*sign;}public static double parseDouble(String str){double result=0.0;int i=0;double power=10.0;int sign=1;if(str.charAt(i)=='-'){sign=-1;}if(str.charAt(i)=='+'|| str.charAt(i)=='-'){i++;}for(int j=i;j<str.length();j++){if(str.charAt(j)>='0' && str.charAt(j)<='9'){result=result*10+str.charAt(j)-'0';}else {i=j+1;break;}}for(int j=i;j<str.length();j++){if(str.charAt(j)>='0' && str.charAt(j)<='9'){result=result+(str.charAt(j)-'0')/power;power=power*10.0;}}return result*sign;}}
2、对给定的字符串翻转:
public class Reverse{public static void reverse(char []str){for(int i=0;i<str.length/2;i++){char temp=str[i];str[i]=str[str.length-1-i];str[str.length-1-i]=temp;}System.out.println(str);}}
3、将一个数字转换为二进制字符串和十六进制字符串
public class ToString{public static String toBinaryString(int val){String str="";for(int i=0x80000000;i!=0;i>>>=1){str=str+((i&val)==0?"0":"1");}return str;}public static String toHexString(int val){String str="";while(val>0){int temp=val%16;if(temp>=0&& temp<=9){str=(temp+'0')+str;}else if(temp>=10 && temp<=15){str=(char)(temp-10+'A')+str;}val=val/16;}return str;}}