1.反转字符串中的单词和反转字符
例如 str=“My name is Teng”;
输出1 str1=“Teng is name My”;
输出2 str2=“yM eman si gneT”;
解法:
public String reverse1(String str){
String[] s =str.trim().split("\\s");//去掉字符串头尾的空格,并且按照空格进行拆分
String out=" ";
for(int i=s.length-1;i>0;i++)
{
out+=s[i]+" ";
}
return out+ s[0];
}
public String reverse2(String str){
String[] s=str.split(" ");
StringBuilder sb =new StringBuilder();
for(String s1:s){
StringBuilder temp =new StringBuilder(s1);
sb.append(temp.reverse());
sb.append(" ");
}
return sb.toString().trim();
}
2.把字符串转为整数,输入一个字符串,如果是合法的数值则返回该数字,否则返回0:
public int StrToInt(String str){
if(str==null||str.length==0) return 0;
int statr=0;
int tag=0;//默认为负数,1代表正数
if(str.charAt(0)=='+'){
tag=1;
start=1;
}else if(str.charAt(0)=='-'){
tag=0;
start=1;
}else{
tag=1;
start=0;//默认无符号的为正数
}
long result=0;
for(int i=start;i<str.length;i++){
char temp =str.charAt(i);
if(temp>='0'&&temp<='9'){
result=reslut*10+(temp-'0');
if(tag==1&&result>Integer.MAX_VALUE)
throw new RuntimeException("上溢出");
if(tag==0&&result<Integer.MIN_VALUE)
throe new RuntimeException("下溢出");
}else{
return 0;
}
}
if(tag==0){
return (int)(-1*reslut);
}else{
return (int)reslut;
}
}
3.判断字符串是否为回文字符串(正读反读都一样的字符串):
public static boolean HuiWen(String str){
for(int i=0;i<str.length()/2;i++){
if(str.toCharArray()[i]!=str.toCharArray()[length-1-i]){
return false;
}
}
return true;
}
4.整数的逆序输出:
例如x=321 输出123
y=-123 输出-321
public int reverse(int x){
long result=0;
while(x!=0){
reslut=reslut*10+x%10;
if(result>Integer.MAX_VALUE||reslut<Integer.MIN_VALUE)
return 0;
x=x/10;
}
return (int)result;
}
5.判断一个数是不是素数(质数)
public boolean isPrimeNumber(int num){
if(num==2) return true;
if(num<=2||num%2==0) return false;
for(int i=3;i<=Math.sqrt(num);i+=2)
{
if(num%i==0){
return false;
}
}
return true;
}
6.输入一个整数,输出该数二进制中1的个数,其中负数用补码表示
public int OneNum(int n){
int count=0;
while(n!=0){
count+=n&1;
n>>>1;
}
return count;
}
7.求一个数的平方根
public int mySqrt(int x){
long left=0;
long right=x/2+1;
while(left<right){
long mid=left+(right-left+1)/2;
long square=mid*mid;
if(square>x){
right=mid-1;
}else{
left=mid;
}
}
return (int)left;
}