package com.cn.zhengze;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
public class BallGroup {
public static void main(String[] args) {
String str1 = " AD 3B 4R AY 9Y ";
String zhengze1 = "[1-9ABCD][YBRD]\\s+[1-9ABCD][YBRD]\\s+[1-9ABCD][YBRD]\\s+[1-9ABCD][YBRD]\\s+[1-9ABCD][YBRD]";
System.out.println(str1.trim().matches(zhengze1));
str1 = str1.trim().replaceAll("\\s+", "");
System.out.println(str1);
Map<String, Integer> indexMap = new HashMap<String, Integer>();
Map<String, Integer> clarMap = new HashMap<String, Integer>();
for(int i = 0; i < str1.length(); i += 2){
String temp = str1.substring(i, i + 1);
String temp2 = str1.substring(i + 1, i + 2);
Integer count = indexMap.get(temp);
if(null == count) {
indexMap.put(temp, 1);
}else{
indexMap.put(temp, ++count);
}
Integer clarCount = clarMap.get(temp2);
if(null == clarCount) {
clarMap.put(temp2, 1);
}else{
clarMap.put(temp2, ++clarCount);
}
}
/*String str = "AABBCCGFDED";
Map<String, Integer> maps = new HashMap<String, Integer>();
for(int i = 0; i < str.length(); i++) {
String temp = str.substring(i, i + 1);
Integer count = maps.get(temp);
if(count == null) {
count = 1;
} else {
count++;
}
maps.put(temp, count);
}*/
printMap(indexMap);
System.out.println("----------------------------------");
printMap(clarMap);
List<Entry<Object, Object>> keyEntryList = sortMapByKey(indexMap);
List<Entry<Object, Object>> valueEntryList = sortMapByvalue(indexMap);
}
@SuppressWarnings("unchecked")
private static List<Entry<Object, Object>> sortMapByvalue(
Map<?, ?> map) {
List<Entry<Object, Object>> entryList = new ArrayList<Map.Entry<Object,Object>>((Collection<? extends Entry<Object, Object>>) map.entrySet());
Collections.sort(entryList, new Comparator<Object>() {
@Override
public int compare(Object o1, Object o2) {
Map.Entry<Object, Object> obj1 = (Map.Entry<Object, Object>)o1;
Map.Entry<Object, Object> obj2 = (Map.Entry<Object, Object>)o2;
if(obj1.getValue() instanceof Integer){
return (Integer)obj2.getValue() - (Integer)obj1.getValue();
} else if (obj1.getValue() instanceof String) {
return obj1.getValue().toString().compareTo(obj2.getValue().toString());
}
return 0;
}
});
return entryList;
}
@SuppressWarnings("unchecked")
private static List<Entry<Object, Object>> sortMapByKey(Map<?, ?> indexMap) {
List<Entry<Object, Object>> entryList = new ArrayList<Map.Entry<Object,Object>>((Collection<? extends Entry<Object, Object>>) indexMap.entrySet());
Collections.sort(entryList, new Comparator<Object>() {
@Override
public int compare(Object o1, Object o2) {
Map.Entry<Object, Object> obj1 = (Entry<Object, Object>) o1;
Map.Entry<Object, Object> obj2 = (Entry<Object, Object>) o2;
if (obj1.getKey() instanceof Integer) {
return (Integer)obj2.getKey() - (Integer)obj1.getKey();
}else if(obj1.getKey() instanceof String) {
return obj1.getKey().toString().compareTo(obj2.getKey().toString());
}
return 0;
}
});
return entryList;
}
private static void printMap(Map<String, Integer> indexMap) {
for(Entry<?, ?> entry : indexMap.entrySet()){
System.out.println(entry.getKey() + "---->" + entry.getValue());
}
}
}
相关推荐
易语言字符串操作源码,字符串操作,字符串_取长度,字符串_取中间,字符串_取左边,字符串_取右边,字符串_替换,到宽字符,到多字节,取文本数据地址,取字节集数据地址,MultiByteToWideChar,WideCharToMultiByte
### C#字符串操作详解 #### 一、引言 在C#编程中,字符串操作是一项基本而重要的技能,尤其对于初学者来说更是如此。本文旨在详细介绍C#中的字符串操作技术,帮助读者掌握如何高效地处理字符串。我们将从.NET框架...
### JavaScript字符串操作详解 在JavaScript中,字符串是用于表示文本数据的一种基本数据类型。字符串可以包含单个字符或多个字符组合成的文本序列。本文将详细介绍JavaScript中的字符串操作方法,帮助开发者更好地...
在本课程设计“广工数据结构课程设计字符串操作”中,我们将专注于一个特定的数据结构——字符串,并探讨如何对其进行高效的操作。字符串在编程中扮演着重要角色,无论是处理用户输入、文本分析还是数据存储,都离不...
C# 字符串操作方法实例 C# 中的字符串操作方法是指在 C# 编程语言中对字符串进行操作的各种方法和技术。字符串是使用 string 关键字声明的一个字符数组,字符串对象是“不可变的”,即它们一旦创建就无法更改。 1....
PHP 字符串操作全实例心得 PHP 字符串函数大全是 PHP 编程语言中处理字符串的函数的集合。这些函数可以对字符串进行各种操作,如加密、解密、格式化、搜索、替换等。下面是 PHP 字符串函数大全的详细说明: 1. ...
字符串操作函数大全(String) 在 C 语言中,字符串操作函数是非常重要的一部分,它们被广泛应用于各种编程领域。今天,我们将对字符串操作函数大全进行讲解,包括字符串拷贝、字符串连接、字符串比较等多种操作。 ...
Objective-C是一种用于开发iOS应用的主要编程语言,其字符串操作主要依赖于NSString类和NSMutableString类。NSString用于创建不可变字符串对象,而NSMutableString则用于创建可变字符串对象。以下是Objective-C中...
pb函数库之字符串操作函数 pb函数库提供了一系列的字符串操作函数,用于对字符串进行各种操作,包括字符串填充、截取、删除空格、计算长度、大小写转换、模式匹配等。下面是pb函数库中的一些常用字符串操作函数: ...
从给定的代码片段和部分描述中,我们可以深入探讨C#中的字符串操作函数,这是C#编程语言中处理文本数据的重要方面。以下是对标题“C#中字符串操作函数”所涉及的一些关键知识点的详细说明: ### 1. 字符串截取函数 ...
在编程领域,字符串操作是日常开发中不可或缺的一部分。标题中的"字符串操作封装函数"指的是将常用的字符串处理功能封装成独立的函数,以便于在代码中重复使用,提高代码的复用性和可读性。这样的做法遵循了软件工程...
在C和C++编程语言中,字符串操作是基础且重要的组成部分。面试中,字符串处理函数的熟练掌握常常被视为衡量一个程序员基本功的标准。本文将详细解释三个常用的字符串操作函数:`strcat`、`strcpy`和`strcmp`,并提供...
在编程领域,字符串操作是日常开发中不可或缺的一部分。无论是在数据处理、用户界面交互还是算法实现中,我们都需要对字符串进行各种操作。本教程将全面介绍字符串操作的相关知识点,帮助你掌握这一重要的技能。 ...
本文将深入探讨Java中的字符串操作,包括创建、比较、拼接、查找与替换、分割以及格式化。 1. 创建字符串: Java中有两种方式创建字符串:通过`new`关键字或使用字符串字面量。 - 使用`new`关键字:`String str =...
C#-字符串操作类(替换字符串中危险字符、指定位置替换字符串、指定长度缩减字段并加...、指定字符串分割字符串、指定字符串位置获取字符串、过滤SQL中非法字符、检查SQL语句中是否有非法关键字、随机字符串生成、...
字符串操作代码入门 Python Python 中的字符串操作是编程语言的基础知识之一,字符串是 Python 中最常用的数据类型之一。本文将通过实例代码,详细介绍 Python 中字符串操作的基础知识,包括字符串的基本操作、索引...
在IT领域,字符串操作是编程中的基础且至关重要的部分,无论你使用哪种编程语言,如Python、Java、C++或JavaScript等。字符串是由字符组成的序列,可以用来存储文本信息。本资源“字符串操作大全”显然提供了关于...
在C++编程中,字符串操作是一项基础且重要的技能。C++标准库提供了多种处理字符串的工具,包括`std::string`类以及C风格的字符串函数。在这个“c++字符串操作”项目中,开发者可能利用了这些工具来实现对字符串的...