JAVA关于字符串&&字符数组处理的小题目
JAVA关于字符串&&字符数组的小题目 第二题:分析以下需求,并用代码实现
1.键盘录入一个大字符串,再录入一个小字符串
2.统计小字符串在大字符串中出现的次数
3.代码运行打印格式:
请输入大字符串:woaiheima,heimabutongyubaima,wulunheimahaishibaima,zhaodaogongzuojiushihaoma
请输入小字符串:heima 控制台输出:共出现3次 该题目我尝试用 面向过程 和 面向对象两种基本思路进行解答。先来面向过程。
import java.util.Scanner; /*第二题:分析以下需求,并用代码实现
1.键盘录入一个大字符串,再录入一个小字符串
2.统计小字符串在大字符串中出现的次数
3.代码运行打印格式:
请输入大字符串:woaiheima,heimabutongyubaima,wulunheimahaishibaima,zhaodaogongzuojiushihaoma
请输入小字符串:heima 控制台输出:共出现3次
创建时间:2018年7月24日15:31:19
创建者:ccsoftlucifer
*/
public class CountBigorSmallString {
public static void main(String[] args) {
String str1,str2;
Scanner sc = new Scanner(System.in);
System.out.println("请输入大串:");
str1 = sc.nextLine();
System.out.println("请输入小串:");
str2 = sc.nextLine();
System.out.println(countBigOrSmallString(str1,str2));
/*//用静态字符串先测试。
System.out.println(countBigOrSmallString("acbdcfcb","cb"));//结果应该为2
System.out.println(countBigOrSmallString("acbdcfcbdghcbsdggcb","cb"));//结果应该为4
System.out.println(countBigOrSmallString("acbcbdcfcb","cb"));//结果应该为3*/
}
public static int countBigOrSmallString(String str1,String str2){
int count=0;
//将 接收到的两组String类型的字符串分别转换为char 类型的字符数组。
char array1[] = str1.toCharArray();
char array2[] = str2.toCharArray();
for (int i = 0; i < array1.length; i++) {
int flag;
//用循环遍历 寻找与array2[0]相同的元素。
if(array1[i]==array2[0]){
//对flag标记值进行初始化
flag=0;
//从相同的第一个元素头开始,比较后面其他的元素是否相同,只要有一个不同,则不相同。将标记值flag标记为1
for (int j=0,k=i;j<array2.length;j++,k++){
if (array1[k]!=array2[j]) {
//flag = 1表示开头相同,后续字符串不相同的字符串。 不予以计数。
flag=1;
}
}
//如果标记值没标记为1,说明此次两个字符串比较,后续字符串全部相同,count++;
if (flag==0)
count++;
}
}
return count;
}
}
除了上述面向过程的解题思路之外,还有面向对象的方法,用indexOf(string,index) 和循环不断去找匹配的元素。
因为indexOf的返回值是匹配的的字符串的位置,那么我下次找的时候,就在该位置之后继续找。一直找不到返回-1为止。
import java.util.Scanner; /*第二题:分析以下需求,并用代码实现
1.键盘录入一个大字符串,再录入一个小字符串
2.统计小字符串在大字符串中出现的次数
3.代码运行打印格式:
请输入大字符串:woaiheima,heimabutongyubaima,wulunheimahaishibaima,zhaodaogongzuojiushihaoma
请输入小字符串:heima 控制台输出:共出现3次
创建时间:2018年7月24日15:31:19
创建者:ccsoftlucifer
*/
public class CountBigorSmallString {
public static void main(String[] args) {
String str1,str2;
Scanner sc = new Scanner(System.in);
System.out.println("请输入大串:");
str1 = sc.nextLine();
System.out.println("请输入小串:");
str2 = sc.nextLine();
System.out.println(countBigOrSmallString(str1,str2));
/*//用静态字符串先测试。
System.out.println(countBigOrSmallString("acbdcfcb","cb"));//结果应该为2
System.out.println(countBigOrSmallString("acbdcfcbdghcbsdggcb","cb"));//结果应该为4
System.out.println(countBigOrSmallString("acbcbdcfcb","cb"));//结果应该为3*/
}
public static int countBigOrSmallString(String str1,String str2){
int count=0;
// int start = str1.indexOf(str2);
int flag = 0;
// System.out.print(start);
int i =0;
//无限循环开始找
for (;;) {
//flag用来接收indexOf();方法的返回值
flag = str1.indexOf(str2,i);
// System.out.print("flag="+flag+" ");
//如果返回值>-1说明找到了,找到了就count ++
if(flag>-1)
count++;
else
//没有找到就跳出
break;
//i如何自增的在本题是关键,每次当我们找到一个匹配的字符串之后,我们要跳过这个字符串进行下次搜索。
//那么 i的下次位置 = 方法返回第一个匹配字符的位置-这个字符当前的位置1 + 小字符串的长度
i=flag-1+str2.length();
}
// System.out.println(count);
return count;
}
}
第三题:分析以下需求,并用代码实现
定义String getStr()方法
功能描述:
获取长度为5的随机字符串
字符串由随机的4个大写英文字母和1个0-9之间(包含0和9)的整数组成
英文字母和数字的顺序是随机的
import java.util.*;
/*
* 第三题:分析以下需求,并用代码实现
定义String getStr()方法
功能描述:
获取长度为5的随机字符串
字符串由随机的4个大写英文字母和1个0-9之间(包含0和9)的整数组成
英文字母和数字的顺序是随机的
创建时间:2018年7月24日16:56:06
创建者:ccsoftlucifer
* */
public class RandomCharNum {
//定义String getStr()方法
public static void getStr(){
//1.先创建一个字符数组,题目要求长度为5,即是字符数组的上限为5
char array[] = new char[5];
//2.创建了字符数组之后呢,我们先随机生成一个索引值0-4,再产生一个随机值放入array[0]-array[4]随机一个中。
// Random ra = new Random();
int flag = new Random().nextInt(5);
int numRandom = new Random().nextInt(10);
array[flag] =(char)(numRandom+48);
//.3.用一个标记记住步骤2的索引值,除了那个索引值之外,其他的所有值 用随机方法,产生英文字母。
// 当索引值碰到标记值时,尝试用countinue语句跳过,这样就不会改变步骤2的值
for (int i=0;i<5;i++){
if(i==flag)
continue;
int charRandom = new Random().nextInt(24);
array[i]=(char)(charRandom+'A');
}
for (int j=0;j<5;j++)
System.out.print(array[j]);
} public static void main(String[] args) {
getStr();
}
}
JAVA关于字符串&&字符数组处理的小题目的更多相关文章
- java中将一个字符数组赋值给另一个,两者同时变化
java中将一个字符数组赋值给另一个,两者的变化怎么是同步的?怎么才能让他们独立开? 比如有一个int[][] a 已经存在值,现在定义int[][] b=a;之后改变a的值,为何b也跟着改变?怎么才 ...
- 字符串 字符数组, pcha string 之间的相互转化, 很重要。 很蛋疼
http://www.cnblogs.com/del88/p/5448981.html Delphi字符串.PChar与字符数组之间的转换 来自:http://my.oschina.net/kaven ...
- java实验五——字符数组、String、StringBuffer的相互转化,StringBuffer的一些方法
package hello; import java.util.Scanner; public class 实验五 { public static void main(String[] args) { ...
- [原创]Java中字符串、数组、集合及JSONArray的长度属性
前言:数组没有length()这个方法,有length的属性.String有有length()这个方法. 1.String字符串 String str = "abcdefg";st ...
- 【转载】C#中将字符串分割成字符数组
在C#中字符串类型String是由一系列的单个字符组合而成,其实可以通过字符串String对象ToCharArray()方法来将字符串中的元素逐一存在数据类型为Char的一维数组中. 例如将字符str ...
- Delphi的字符串、PChar和字符数组之间的转换
参考:http://my.oschina.net/kavensu/blog/193719 以下的各种方法都是我在Delphi 6的环境下测试成功的,可能根据你的开发环境.不同的上下文语境……有一些可能 ...
- c语言字符数组与字符串的使用详解
转自:http://www.jb51.net/article/37456.htm 1.字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素.char str[10]={ ...
- c语言中的字符数组与字符串
1.字符数组的定义与初始化 字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素. char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y ...
- Delphi字符串、PChar与字符数组之间的转换
来自:http://my.oschina.net/kavensu/blog/193719 ------------------------------------------------------- ...
随机推荐
- java反射(java.lang.reflect) ---普通单例模式唯一性问题
1. 普通的饱汉式.饿汉式 package org.bighead.test2; public class TestPrivate { private String str = "strPr ...
- LeetCode算法题-Longest Uncommon Subsequence I(Java实现)
这是悦乐书的第252次更新,第265篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第119题(顺位题号是521).给定一组两个字符串,您需要找到这组两个字符串中最长的不同 ...
- 5.机器学习——DBSCAN聚类算法
1.优缺点 优点: (1)聚类速度快且能够有效处理噪声点和发现任意形状的空间聚类: (2)与K-MEANS比较起来,不需要输入要划分的聚类个数: (3)聚类簇的形状没有偏倚: (4)可以在需要时输入过 ...
- 应用 memcached 提升站点性能
减少读自数据库和数据源 开源 memcached 工具是一个用来存储常用信息的缓存,有了它,您便无需从缓慢的资源,比如磁盘或数据库,加载(并处理)信息了.该工具可部署在专用的情况下,也可作为用完现有环 ...
- DISK 100% BUSY,谁造成的?(ok)
iostat等命令看到的是系统级的统计,比如下例中我们看到/dev/sdb很忙,如果要追查是哪个进程导致的I/O繁忙,应该怎么办? # iostat -xd ... Device: rrqm/s wr ...
- 好程序员web前端分享css常用属性缩写
好程序员web前端分享css常用属性缩写,使用缩写可以帮助减少你CSS文件的大小,更加容易阅读.css缩写的主要规则如下: 颜色 16进制的色彩值,如果每两位的值相同,可以缩写一半,例如: #0000 ...
- pip 升级 pip
For Python2 sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ --upgrade pip For Python3 ...
- Redis数据结构之简单动态字符串SDS
Redis的底层数据结构非常多,其中包括SDS.ZipList.SkipList.LinkedList.HashTable.Intset等.如果你对Redis的理解还只停留在get.set的水平的话, ...
- python json库序列化支持中文
import json d = {"name":"英雄无敌7"} res = json.dumps(d) # 打印res 会显示 {"name&quo ...
- H5调用手机拍照并展示在前端页面
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...