substring()&&charAt()

该博客探讨了如何使用Java编程语言计算一个字符串的不同非空子串数量。通过示例代码展示了substring()方法的用法,计算了给定字符串'aaab'和'0100110001010001'的非空子串个数。程序利用HashSet自动去重特性,确保计数准确。此外,还介绍了charAt()方法用于获取字符串中指定位置的字符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

substring()

  • str=str.substring(intbeginIndex);
    截取掉str从首字母起长度为beginIndex的字符串,将剩余字符串赋值给str
  • str=str.substring(int beginIndex,int endIndex);
    截取str中从beginIndex开始至endIndex结束时的字符串,并赋值给str;

一个字符串的非空子串是指字符串中长度至少为1 的连续的一段字符组成
的串。例如,字符串aaab 有非空子串a, b, aa, ab, aaa, aab, aaab,一共7 个。
注意在计算时,只算本质不同的串的个数。
请问,字符串0100110001010001 有多少个不同的非空子串?
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
注:hashset会自动去除重复!

import java.util.HashSet;
import java.util.Set;

public class 子串的数量 {

public static void main(String[] args) {
	String s1 = "aaab";
	String s2 = "0100110001010001";
	System.out.println(subSum(s1));
	System.out.println(subSum(s2));

}

public static int subSum(String s) {
	Set<String> set = new HashSet<String>();
	for(int i = 0; i < s.length(); i++) {
		for(int j = i ; j < s.length(); j++) {
			//将每一个子串都加入到set集合中
			set.add(s.substring(i, j + 1 ));
		}
	}
	return set.size();
}

}

charAt()

  • char result=s.charAt(6);
    方法用于返回指定索引处的字符(索引范围为从 0 到 length() - 1)``
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值