java 基础实战_Java基础实战(三)

是否是否是否是否获取字符串字符数组大写?小写?数字?非字母与数字大写字母小写字母数字i结束i=i+1第一步 拆分字符串为字符数组:static void count(String str) {// 将字符串拆分为字符数组char[] charArray = str.toCharArray();}第二步 定义相关变量记录结果:// 记录数字字符串String digit = "";// 记录统计数字...
摘要由CSDN通过智能技术生成

获取字符串

字符数组

大写?

小写?

数字?

非字母与数字

大写字母

小写字母

数字

i

结束

i=i+1

第一步 拆分字符串为字符数组:

static void count(String str) {

// 将字符串拆分为字符数组

char[] charArray = str.toCharArray();

}

第二步 定义相关变量记录结果:

// 记录数字字符串

String digit = "";

// 记录统计数字出现的次数

int digitCount = 0;

// 记录大写字母字符串

String upper = "";

// 记录大写字母出现的次数

int upperCount = 0;

// 记录小写字母字符串

String lower = "";

// 记录小写字母出现的次数

int lowerCount = 0;

// 记录非字母与数字的字符串

String other = "";

// 记录非字母与数字出现的次数

int otherCount = 0;

第三步 遍历字符数组,依次判断:

// 遍历字符数组依次判断字符类型

for (char ch : charArray) {

// 统计大写字母

if (Character.isUpperCase(ch)) {

upperCount++;

// 字符转字符串

upper += Character.toString(ch);

}

// 统计小写字母

if (Character.isLowerCase(ch)) {

lowerCount++;

lower += Character.toString(ch);

}

// 统计数字

if (Character.isDigit(ch)) {

digitCount++;

digit += Character.toString(ch);

}

// 统计非字母或数字

if (!Character.isLetterOrDigit(ch)) {

otherCount++;

other += Character.toString(ch);

}

}

完整代码:

package task03.code0301;

public class CountChar {

public static void main(String[] args) {

String str = "ABCD123!@#$%ab";

count(str);

}

static void count(String str) {

char[] charArray = str.toCharArray();

String digit = "";

int digitCount = 0;

String upper = "";

int upperCount = 0;

String lower = "";

int lowerCount = 0;

String other = "";

int otherCount = 0;

for (char ch : charArray) {

if (Character.isUpperCase(ch)) {

upperCount++;

upper += Character.toString(ch);

}

if (Character.isLowerCase(ch)) {

lowerCount++;

lower += Character.toString(ch);

}

if (Character.isDigit(ch)) {

digitCount++;

digit += Character.toString(ch);

}

if (!Character.isLetterOrDigit(ch)) {

otherCount++;

other += Character.toString(ch);

}

}

System.out.printf("大写字母%d个:\"%s\";\n小写字母%d个:\"%s\";\n数字%d个:\"%s\";\n其他字符%d个:\"%s\"。\n", upperCount, upper,

lowerCount, lower, digitCount, digit, otherCount, other);

}

}

// 大写字母4个:"ABCD";

// 小写字母2个:"ab";

// 数字3个:"123";

// 其他字符5个:"!@#$%"。

第二题

如: s1=“asdafghjka”, s2=“aaasdfg” 他们的最大子串为"asd"

提示: 将短的那个串进行长度依次递减的子串与较长的串比较。

思路:

1、判断两个字符串的长度大小;

2、若长的字符串包含短的字符串,则短字符串为两者最大子串;

3、短的字符串长度依次递减,观察长的字符串是否包含,若包含,则此时为两者的最大子串,以"aaasdfg"为例:

当长度=7时,有1子串——(0,7)“aaasdfg”;因前面做了先行判断,可跳过;

当长度=6时,有2子串——(0,6)“aaasdf”;(1,7)“aasdfg”;

当长度=5时,有3子串——(0,5)“aaasd”;(1,6)“aasdf”;(2,7)“asdfg”;

当长度=4时,有4子串——(0,4)“aaas”;(1,5)“aasd”;(2,6)“asdf”;(3,7)“sdfg”;

3、规律总结:

第一次:i=0,j=0–>(0,7)=(?,?);不确定;

第二次:i=1,j=0–>(0,6)=(j,7-i); i=1,j=1–>(0,6)=(j,7-i+j);确定下标起点为j,猜想终点位置为7-i+j,继续验证;

第三次:i=2,j=0–>(0,5)=(j,7-i+j); i=2,j=1–>(1,6)=(j,7-i+j); i=2,j=2–>(2,7)=(j,7-i+j);确定终点位置为7-i+j。

第一步 判断两个字符串长度大小:

static String getMaxSonStr(String s1, String s2) {

String maxStr = s1.length() > s2.length() ? s1 : s2;

St

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值