`
jackey25
  • 浏览: 111881 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

在一个字符串中查找重复次数最多的字符

阅读更多

在一个字符串中可能包含a-z中的多个字符,如有重复,如String data = "shfksjgljsfsfs",求出现次数最多的那个字母及次数,如有多个重复的则求出。

思路:
1.引入TreeSet,通过集合快速找到所有出现的字符。
2.引入ArrayList,为了快速排序,再通过StringBuffer生成排序后的字符串。
3.通过String Api中基本方法, indexOf lastIndexOf来计算TreeSet中每个字符串出现的最大值。
4.如果出现相同的则把相同的都记录在一个列表中。
5.记录第一个出现次数最多的字符(为了计算多个字符串相同的情况)。
6.计算最大字符串列表中哪些才是真正出现次数最多的。


import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.TreeSet;


public class Test2 {
	public static void main(String args[]){
		String input = "adsfsafasdfjlfdjgkdf";
		new Test2().doString(input);
	}

	public void doString(String input){
		char[] chars = input.toCharArray();
		ArrayList lists = new ArrayList();
		TreeSet set = new TreeSet();
		for(int i=0;i<chars.length;i++){
			lists.add(String.valueOf(chars[i]));
			set.add(String.valueOf(chars[i]));
		}
		System.out.println(set); //set没有重复的元素
		Collections.sort(lists);
		System.out.println(lists); //sort排序

		StringBuffer sb = new StringBuffer();
		for(int i=0;i<lists.size();i++){
			sb.append(lists.get(i));
		}
		input = sb.toString();
		System.out.println(input);
		int max = 0;
		String maxString = "";
		ArrayList maxlist = new ArrayList();

		Iterator its = set.iterator();
		while(its.hasNext()){
			String os = (String)its.next();
			int begin = input.indexOf(os);
			int end = input.lastIndexOf(os);
			int value = end - begin + 1;
			if(value > max){
				max = value;
				maxString = os;
				maxlist.add(os);
			}
			else if(value == max){
				maxlist.add(os);
			}
		}

		int index = 0;
		for(int i=0;i<maxlist.size();i++){
			if(maxlist.get(i).equals(maxString)){
				index = i;
				break;
			}
		}
		System.out.println("出现最多的字符分别是:");
		for(int i=index;i<maxlist.size();i++){
			System.out.println(maxlist.get(i) + "  ");
		}
		System.out.println();
		System.out.println("出现最多的次数为" + max);
	}
}

分享到:
评论

相关推荐

    查找字符串中出现重复次数最多的字符

    本主题关注的是如何查找一个字符串中出现重复次数最多的字符。这是一个典型的字符串处理问题,对于理解字符串操作和优化算法能力的提升非常有帮助。 首先,我们要明确问题的目标:给定一个字符串,找出其中出现频率...

    求一个字符串中的连续出现次数最多的字串

    假设有一个输入字符串 `str`,我们需要找到在该字符串中出现次数最多的一个或多个连续子串,并统计它们出现的次数。 #### 1.3 输入输出格式 - **输入**:一个字符串 `str`。 - **输出**:连续出现次数最多的子串...

    vfp统计字符串中某字符重复出现次数

    在Visual FoxPro(VFP)中,统计字符串中特定字符的重复出现次数是一项常见的文本处理任务,这在数据处理和分析中非常有用。这个任务可以通过编程实现,不仅可以应用于单个字符串,还可以扩展到统计数据库表中某个...

    Oracle查找字符串中某字符出现的次数

    select f_find('Ap@2233ll@@l@@','@') from dual 返回结果为5,代表‘@’在该字符串中出现5次。 同理 select f_find('Ap@223SWEQQQ3ll@@l@@','Q') from dual---返回3,代表Q在字符串中出现了3次, select f_find('我...

    java 查找字符串中出现最多的字母

    在本例中,字符串 `"djasjdklasjdklasjaiurakczkcnss"` 被存储为一个 `String` 对象,并通过 `toCharArray()` 方法转换成字符数组 `char[] c`。这一步是将字符串拆分为单个字符的基础。 #### 集合框架 - **HashSet*...

    从字符串中查找字符出现次数的方法和性能对比

    在IT领域,尤其是在编程与数据处理中,统计字符串中特定字符的出现次数是一个常见的需求。本文将深入探讨几种实现这一功能的方法,并通过实际代码示例和性能对比分析,帮助读者理解每种方法的优劣,以便在实际开发中...

    给定字符串,查找其中重复的子字符串积重复的次数[参考].pdf

    在软件网络技术领域中,查找字符串中重复的子字符串积重复的次数是一个常见的问题,本文将通过 Java 语言实现这个功能,并对其中的知识点进行详细的解释。 知识点一:字符串操作 在 Java 中,字符串是一个非常重要...

    文本重复字符串查找

    在提供的文件中,`strfind.exe`很可能是一个执行程序,用于执行实际的重复字符串查找操作。它可能接受输入文件、设置参数(如重复长度和排除字符串)并输出结果。而`list.txt`可能是包含要分析的文本数据的文件,...

    Java求字符串中出现次数最多的字符串以及出现次数

    在Java编程中,统计字符串中出现次数最多的字符及其出现次数是一项常见的任务,尤其在数据处理和文本分析领域。本问题的解决方案使用了多种Java集合框架类,包括`TreeSet`、`ArrayList`、`HashMap`和`StringBuffer`...

    c# 在字符串里处理重复字符

    在C#编程语言中,处理字符串中的重复字符是一项常见的任务,尤其在数据清理、文本分析或用户输入验证等场景中。本项目提供了完整的源代码,可在Visual Studio 2008环境下编译并通过测试,展现出强大的功能和扩展性。...

    编写函数void fun(char *s,char *t,char *p)将未在字符串s中出现、而在字符串t中出现的字符, 形成一个新的字符串放在p中,p中字符按原字符串中字符顺序排列,但去掉重复字符。

    根据给定的信息,我们需要实现一个C语言函数`void fun(char *s,char *t,char *p)`,该函数的功能是:将未在字符串`s`中出现、而在字符串`t`中出现的字符形成一个新的字符串并存储在指针`p`指向的空间内。新字符串中...

    函数:字符串s1中删除串s2里包含的所有字符(c语言)

    从上面的代码可以看到,我们首先使用一个循环来遍历字符串s1,在循环中,我们使用另一个循环来检查当前字符是否在字符串s2中,如果不在,则将其保留在字符串s1中。最后,我们将字符串s1的结尾字符设置为0,表示字符...

    讨论字符串中字符出现的次数

    1. **提取单个字符**:利用 `substring` 方法提取字符串中的第一个字符。 2. **替换字符**:使用 `replaceAll` 方法将已统计的字符全部替换为空字符串,从而计算该字符的出现次数。 3. **循环统计**:重复上述步骤,...

    demo_并返回出现起始索引_获取一个字符串在另一个字符串中出现的次数_DEMO_

    总的来说,这个"DEMO"项目是关于字符串处理的一个实例,对于学习和理解Java中字符串操作以及字符串查找算法具有一定的实践价值。通过这个示例,开发者可以学习如何在实际编程中解决此类问题,提高对字符串操作的掌握...

    一个字符串中出现次数最多的字符 统计这个次数【实现代码】

    在编程领域,经常需要处理字符串数据,而统计字符串中出现次数最多的字符是常见的问题之一。这个问题可以通过使用哈希表(Hash Table)或者对象(Object)来解决,因为它们可以提供快速查找和更新元素的能力。以下是...

    JS查找字符串中出现最多的字符及个数统计

    同时,如果想计算一个子字符串在主字符串中出现的次数,可以使用自定义函数`countInstances`: ```javascript function countInstances(mainStr, subStr) { var count = 0; var offset = 0; do { offset = ...

    使用正则表达式检测字符串中重复出现的词

    在本示例中,我们将讨论如何利用正则表达式来检测字符串中重复出现的词。这个功能在数据清洗、文本分析、日志处理等多种场景下都非常实用。 首先,我们要理解正则表达式的概念。正则表达式是由特殊字符和普通字符...

    字符串中不同字符出现的频度

    在IT领域,尤其是在编程与数据处理中,统计字符串中不同字符出现的频度是一个常见的需求。这不仅有助于文本分析,还能应用于密码学、自然语言处理等多个方面。下面,我们将深入探讨这一主题,包括其实现原理、算法...

    如何判断字符串的个数

    根据给定的信息,本文将详细解释如何在C#中实现字符串匹配并计算特定子字符串在一个字符串中出现的次数。此方法对于文本处理、数据分析以及任何需要处理字符串的应用都非常有用。 ### 如何判断字符串的个数 #### ...

    charnums.rar_字符串 c语言

    要找到一个字符串中连续重复次数最多的子串,我们需要遍历字符串并比较相邻的子串。算法大致可以分为以下几个步骤: 1. 初始化:设置两个变量,一个用于保存当前子串,另一个用于记录最大重复次数。此外,还需要一...

Global site tag (gtag.js) - Google Analytics