题库练习1

1. 计算字符串最后一个单词的长度,单词以空格隔开。

1.1 分析

两个指针:pre和post。用于确定最后一个单词的前后位置

当pre位置的字符为空格时,post置为它的下一位,post自增,知道它等于数组长度(遍历结束)或者它当前所指位置为空格;

  • 若为空格,则令pre=post,post=pre+1重复上述步骤
import java.util.Scanner;

public class Main{
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);

        String str=sc.nextLine();

        new Main().getNum(str);
	}
    public void getNum(String str) {
	int pre=0;
	int post=0;
	if(str.indexOf(' ')==-1){
            System.out.println(str.length());
            return;
        }
            
		char[] chs=str.toCharArray();
		
		while(pre<chs.length) {
			if(chs[pre]==' ') {
                            post=pre+1;
			    while(post<chs.length&&chs[post]!=' ')
				post++;
                           if(post==chs.length)
				break;
			   if(chs[post]==' ')
				pre=post;
			}
			else
			    pre++;
	    }
	    System.out.println(post-pre-1);
	}
}

注:

1.String中怎么判断是否包含哪个字符?

String str="zhidao";
if(str.indexOf("a")==-1){
    //等于-1表示这个字符串中没有a这个字符
    //do something
}
else{   
    //do something
}

2.写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。

2.1 分析

注意:不区分大小写!

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        
        String str=sc.next().toLowerCase();
        String target=sc.next().toLowerCase();

        char[] chs=target.toCharArray();
        getCount(str,chs[0]);
    }
    
    public static void getCount(String str,char target){
        char[] chs=str.toCharArray();
        
        int count=0;
        int i=0;
        while(i<chs.length){
            if(chs[i]==target)
                count++;
            i++;
        }
        System.out.println(count);
    }
}

注:

1. String类型转换为Char类型:

String是字符串,char是字符,所以如果要把String转成char类型,那么要用char数组来存放。

用String的toCharArray() 方法直接转。例如:

String str = “a”;

char[] ch = str.toCharArray();

那么ch数组的内容就是a,ch[0] 的内容就是 'a' 

如果String str = “abcdefg”;

char[] ch = str.toCharArray();

那么ch数组的内容就是a,ch[1] 的内容就是 'b' 

2. 大小写转换的函数

public class admin{
    public static void main(String args[]){
        String a1,a2,a3,t1="ABCDabcd";
        System.out.println("原来是这个样:"+t1);

        a1=t1.toUpperCase();
        System.out.println("字符串小写变大写:"+a1);

        a2=t1.toLowerCase();
        System.out.println("字符串大写变小写:"+a2);

        a3=a1.concat(a2);
        System.out.println("大写字符串连接小写字符串后:"+a3);
    }
}

3. next()和nextLine()

next():读到空格

nextLine():读一行

猜你喜欢

转载自blog.csdn.net/Zhxin606a/article/details/89886084