机试练习02——字符串

目录

字符串最后一个单词的长度

计算某字符出现次数

明明的随机数

HJ4 字符串分隔

HJ5 进制转换


目录

字符串最后一个单词的长度

计算某字符出现次数

明明的随机数


字符串最后一个单词的长度

import java.util.Scanner;
public class Main{
    public  static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        String str=sc.nextLine();
        int len=str.length()-1;
        int count=0;
        while(len>=0 && str.charAt(len)!=' ' ){
            count++;
            len--;
        }
        System.out.println(count);
    }
}

计算某字符出现次数

利用Scanner输入 字符

sc.nextLine().CharAt(0);

由于Scanner没有直接输入字符的方法,所以先输入字符串 ,后取第一个字符

字符串统一转换为大/小写

str.toUpperCase()
str.toLowerCase()

明明的随机数

集合排序知识点、集合知识点、Collections需要复习

ArrayList、Set、Map都有contains功能

Collections.sort(List);——排序功能

测试数据有多组 一定要用Scanner的while功能

import java.util.*;
public  class Main{
    public static void main(String[] args){
        Random rn=new Random();
        Scanner sc=new Scanner(System.in);
        while(sc.hasNext()){
            int N=sc.nextInt();
            //HashSet<Integer> hash=new HashSet<>();
            ArrayList<Integer> list=new  ArrayList<>();
            for(int i=0 ; i<N ; i++){
                int ranNum=sc.nextInt();
                if(!list.contains(ranNum)){
                    list.add(ranNum);
                }
            }
            Collections.sort(list);
            for(int num : list){
                System.out.println(num);
            }
        }
    }
}

HJ4 字符串分隔

//空字符串不处理
//进一步改进 就是只用一个StringBuffer
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        String str=sc.nextLine();
        StringBuffer sb=new StringBuffer(str);
        int len=sb.length();
        int count=0;
        int start=0;
        
        StringBuffer s1=new StringBuffer();
        for(int i=0 ; i<len ; i++){
            char ch=str.charAt(i);
            
            if(ch!=' ' && count<8 ){
                s1.append(ch);
                count++;
            }
            
            if(count==8){
                //输出
                //System.out.println(s1.toString());
                count=0;
                //s1=new StringBuffer();
            }
            
        }
        while(count<8 && count!=0){
            count++;
            s1.append("0");
        }
        for(int i=0;i<s1.length()/8;i++){
              System.out.println(s1.substring(8*i,(i+1)*8));
          } 
    }
}

HJ5 进制转换

import java.util.Scanner;
import java.util.HashMap;
import java.lang.Math;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        String str=sc.nextLine();
        //要不要转化大写
        int len=str.length();
        HashMap<Character,Integer> hash=new HashMap<>();
        hash.put('A',10);
        hash.put('B',11);
        hash.put('C',12);
        hash.put('D',13);
        hash.put('E',14);
        hash.put('F',15);
        int res=0;
        int index=0;
        int n=0;
        for(int i=len-1 ; i>1 ;i--){
            if(48<=str.charAt(i) && str.charAt(i)<=57){
                n=str.charAt(i)-48;
            }else{
                n=hash.get(str.charAt(i));//10;
            }
            
            int pw=(int) Math.pow(16,index);//16的次方
            index++;
            res+=n*pw;
        }
        System.out.println(res);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值