字符串题(2021-6-22)

本文介绍了Java中的三个实用编程技巧:如何将字符串转换为整数,处理字符串中的空格替换,以及实现字符串的排列组合。通过实例展示了字符串转整数的方法,使用ASCII编码判断并处理负号,以及递归算法实现字符串排列的逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.把字符串转换成整数

public class Solution{
   public int StrToInt(String str){
     if(str==null||str.length()==0) return 0;
     int mark=0;
     int number=0;//用int来存储,以防止越界
     if(str.charAt(0)=='-')  mark=1;//charAt:返回指定索引处(0)的字符为-,则mark=1
     for(int i=mark;i<str.length();i++){//遍历字符串
       if(str.charAt(i)=='+'){//如果索引处的字符等于+,则继续遍历
       continue;
       }
       if(str.charAt(i)<48||str.charAt(i)>57){
       return 0;//数字不在0-9范围内,则返回0

       }
       number=number*10+str.charAt(i)-48;
     }

    return mark=0?number:-number;//mark等于0,返回number;mark=1,返回一个-number
   }
}

思路:一般把字符串转换成整数,用ASCII,048,957
1.如果字符串为空,长度为0,返回02.定义mark=0,number=0;
3.如果数字的0索引处为-,则返回 mark=1;
4.遍历字符串,第一种情况:如果0索引处为+,则继续遍历
5.第二种情况:字符串的数字都是0-9的范围内,否则返回0
6.mark=0就输出当前的数;mark=-1就输出负数;
ASCII转换成数字的公式:number=number*10+str.charAt(i)-48;

2.替换空格

import java.util.*;
public class Solution{
   public String replaceSpace(){
     if(s==null||s.length()==0)  return s;
     return s.replaceAll(" ","%20");
 }
}
思路:
1.如果字符串为空或者字符串的长度为0,则返回字符串.
2.用replaceAll方法,将空格替换成%20.

3.字符串排列

import java.util.ArrayList;
public class Solution{
   public ArrayList<String> Permutation(String str){
   ArrayList<String> result=new ArrayList<>();
   if(str==null||str.length()==0){
   return result;
    }
    recur(str,"",result);
    return result;
   }
   public void recur(String str,String cur,ArrayList<String> result){
   if(str.length()==0){
      if(!result.contains(cur)){
      result.add(cur);
      }
   }
   for(int i=0;i<str.length();i++){
   recur(str.substring(0,i)+str.substring(i+1,str.length()),cur+str.charAt(i),result);
   }
  }
}
思路:
1.创建一个list集合,用来存放String类型数据
2.如果字符串为空或者长度为0,则返回结果。
3.调用recur方法,将结果存入list集合中。
4.编写recur方法,将原来的字符串、排序好的字符串、和存入集合的字符串都传入。
5.如果字符串的长度为0,list集合中不包含cur,就将排序好的字符串添加进list集合中。
6.遍历字符串,将结果的字符串排序好。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值