Java String类练习题
题目:
1. 给定一个字符串,判断该字符串中是否包含某个子串.如果包含,求出子串的所有出现位置.
如:"abcbcbabcb34bcbd"中,"bcb"子串的出现位置为: 1,7,12.字符串和子串均由用户输入
2.给定一个长度,随机产生一个该长度的字符串,由大写,小写字母以及数字组成
Java中随机数的生成:
java.util.Random r = new java.util.Random();
int a = r.nextInt(100): a 0-99的随机数
3.给定一个由数字组成的字符串,如:"1239586838923173478943890234092",统计
出每个数字出现的次数
答案如下:
package Chp10; import java.util.HashMap;
import java.util.Map;
import java.util.Random;
import java.util.Scanner;
import java.util.Set; public class TestString2
{
public static void Method_One()
{ Scanner s = new Scanner(System.in);
System.out.println("请输入一个父串");
String str = s.next(); System.out.println("请输入一个子串");
String str1 = s.next(); int stat = 0;
while (true)
{
int i = str.indexOf(str1,stat);
if (i==-1)
{
break;
}
System.out.println(i);
stat = i+str1.length();
} } public static void Method_Two()
{
System.out.println("请输入一个长度");
Scanner s = new Scanner(System.in);
int n = s.nextInt();
char[] cs = new char[n]; Random random = new Random();
for (int i = 0; i < n; i++)
{
int a = random.nextInt(62);
if(a>=0 && a<=25)
{
a+=65;
}
else if (a>25 && a<=51)
{
// 97 - 26 = 71
a+=71;
}
else
{
// 52-48 = 4
a-=4;
}
cs[i] = (char)a;
}
System.out.println(cs);
} public static void Method_Three()
{
Scanner scanner = new Scanner(System.in);
String string = scanner.next();
int[] c = new int[10];
for (int i = 0; i < string.length(); i++)
{
char c1 = string.charAt(i); //48-57
int a = c1-48; // 类型转换
c[a]++;
}
for (int i = 0; i < c.length; i++)
{
System.out.println(i+" 出现的次数: "+c[i]);
} System.out.println("=========方法二==========");
String s = "12548954231351486214894562";
char[] ch = s.toCharArray(); Map<Character, Integer> map = new HashMap<Character, Integer>();
Set<Character> set = map.keySet();
for (int i = 0; i < ch.length; i++)
{
if (set.contains(ch[i])) // 判断map中已经有的char值
{
map.put(ch[i], map.get(ch[i])+1);
} else
{
map.put(ch[i], 1); // 第一次放入map中
}
}
Set<Character> set2 = map.keySet();
for (Character character : set2)
{
System.out.println(character+"=========="+map.get(character));
}
} public static void main(String[] args)
{
System.out.println("第一题如下:");
Method_One();
System.out.println("第二题如下:");
Method_Two();
System.out.println("第三题如下:");
Method_Three();
}
}
Java String类练习题的更多相关文章
- Java String类详解
Java String类详解 Java字符串类(java.lang.String)是Java中使用最多的类,也是最为特殊的一个类,很多时候,我们对它既熟悉又陌生. 类结构: public final ...
- JAVA String 类
java String类中的常用方法:public char charAt(int index)返回字符串中第index个字符:public int length()返回字符串的长度:public i ...
- Java String类具体解释
Java String类具体解释 Java字符串类(java.lang.String)是Java中使用最多的类,也是最为特殊的一个类,非常多时候,我们对它既熟悉又陌生. 类结构: public fin ...
- Java 11 - Java String类
Java String类 字符串广泛应用在Java编程中,在Java中字符串属于对象,Java提供了String类来创建和操作字符串. 创建字符串 创建字符串最简单的方式如下: String gree ...
- Java-Runoob:Java String 类
ylbtech-Java-Runoob:Java String 类 1.返回顶部 1. Java String 类 字符串广泛应用 在Java 编程中,在 Java 中字符串属于对象,Java 提供了 ...
- Java String类的常用方法
String(byte[ ] bytes):通过byte数组构造字符串对象. String(char[ ] value):通过char数组构造字符串对象. String(Sting original) ...
- Java学习笔记之:Java String类
一.引言 字符串广泛应用在Java编程中,在Java中字符串属于对象,Java提供了String类来创建和操作字符串. 创建字符串最简单的方式如下: String str= "Hello w ...
- Java String类的比较运算
面试题:(多选)以下返回true的有() A. "beijing" == "beijing" B. "beijing".equals(new ...
- Java String类和StringBuffer类的区别
1.String与StringBuffer的区别简单地说,就是一个变量和常量的关系.StringBuffer对象的内容可以修改:而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象.St ...
随机推荐
- 最小化安装Linux记录
挂载点: /boot 挂载点 100M swap 交换分区 / 根分区 最小化安装: 基本--基本.兼容库.调试工具 开发--开发工具 修改hostname 永久设置:/etc/sysconfig/ ...
- MySQL协议分析2
MySQL协议分析 议程 协议头 协议类型 网络协议相关函数 NET缓冲 VIO缓冲 MySQL API 协议头 ● 数据变成在网络里传输的数据,需要额外的在头部添加4 个字节的包头. . packe ...
- mongodb 查询时没有索引报错(too much data for sort() with no index)
报错信息: .... too much data for sort() with no index.... 给对应排序字段加索引就OK 了... 在对应"表"名上,右键--> ...
- Lambda 可以转换成委托或expression树
1.关于C# Lambda Expressions: 一个Lambda Expression (译为Lambda式) 就是一个包含若干表达式和语句的匿名函数.可以被用作创建委托对象或表达式树类型.所 ...
- cocoaPods的安装使用 以及 Carthage
http://cnbin.github.io/blog/2015/05/25/cocoapods-an-zhuang-he-shi-yong/ 按照这个步骤就OK Note:当引入已有的project ...
- 【Xilinx-Petalinux学习】-00-开始
基于自己的ZYNQ板子,在上面运行petalinux,已经搞得稳定了,之后详细记录. 现在功能:QSPI启动u-boot和kernel,vdma.tpg.osd.vtc等IP模块在Linux下的驱动, ...
- 华为AR1220新机试用
今天刚刚收到华为AR1220,以为直接就可以用web界面管理,结果开机后才知道web管理界面需要激活. 下面简单分享这个过程: *** 用控制台线(一边RJ45,一边9针串)连接Router cons ...
- docker tag
docker tag 命令以及其中的一些概念--之我见 1. 重要的本质的东西是 image - docker 最有用的东西是image,这个应该可以被大部分人接受 - 查看官网的 tag 命令,一 ...
- 怎样看paper 最有效率
thinking more after reading. Don't just read the papers.in addition, at begining, you'd better focus ...
- JavaScript事件处理程序的3种方式
最近这段时间因为每天要修改网站,为网站做特效,所以看了很多的js接触事件,自己只会使用一小部分,有时用的时候也比较混乱,现在系统的整理了一下,首先跟大家在马海祥博客上跟大家分享的是JavaScript ...