`
狼迹天涯
  • 浏览: 6835 次
  • 性别: Icon_minigender_2
文章分类
社区版块
存档分类
最新评论

String类的使用(统计字符)

    博客分类:
  • java
阅读更多


7月5日 基本数据类型和String类

1.Java的基本数据类型 Java的基本数据类型有8种                                 

                                             类型                 值域                   表示范围
整数类型:           byte        字节型               8bit                   -128~127                    

                              short      短整型              16bit                       

                                int          整型                32bit                    

                              long       长整型               64bit                 -2^n~2^n-1

浮点型:                float        单精度              32bit                  

                             double      双精度              64bit

布尔                    boolean    布尔类型          true和false

字符                      char        字符型               16bit

整数的转型:

       小范围的整数类型值可通过赋值运算直接转换为大范围的原始类型,从byte-short-char-int-long-float-double是可以自动转换。反之,由大范围的原始类型转换到小范围的类型(由精度高的转换为精度低的)则需要强制转换。示例代码如下:

public static void main(String[] args){

	byte a=123;
	int b=a;//由byte型到int型的自动转换
	a=(byte)b;//由byte型到int型的强制转换

}


注:   

 

   1、由精度高的类型转换为精度低的类型时,会失去精度,有可能造成数据的丢失。   

   2、char无法转化为short    3、在定义了变量的类型而未赋值时,每个类型都拥有一个默认值。如boolean类型的默认值为flase。int 一维数组的元素默认值为0。

2.String类的使用   

   1.String在Java中是类。      

      String表示的是字符串
   2.常用方法(整理后添加)          

       1、char charAt(int index) :取字符串中的某一个字符          

       2、int compareTo(String anotherString) :当前String对象与anotherString比较         

       3、String concat(String str) :将该String对象与str连接在一起。       

       4、boolean endsWith(String suffix) :该String对象是否以suffix结尾。     

       5、int indexOf(int ch) :只找第一个匹配字符位置     

       6、int length() :返回当前字符串长度。      

       7、String toLowerCase() :将字符串转换成小写。

 

注:   

    1、String在Java中是类,Java中只有类名的命名是每个单词的首字母大写,常量是每个字母均大写。

代码示例:统计字符串中每一个字符出现的次数
       

       思路一:使用两个循环,第一个循环,提取每一个索引位置的字符,第二个循环用来判断,对字符串进行搜索,搜索到相同的字符,则计数加1。


       运用的函数:   

    1、判断两字符串相等的函数:equals(Object anObject)   

    2、由于判断函数只能用于两个字符串之间的判断,故使用到了将字符变量转化为字符串变量的函数:String valueOf(char c)  

    3、提取指定的索引位置的字符的函数:charAt(int index)

代码示例:
 

public class StringCount1{

	/**
	 * 主函数,程序的入口
	 */

	public static void main(String[] args){

		//定义字符串变量
		String str1="euriyui3743289^%^&*&DJHK2312";
		
		//利用循环语句,依次获取字符串中每一个字符。
		
		for(int i=0;i<str1.length();i++){
			
			//获取指定的索引位置的字符
			
			char c1 = str1.charAt(i);
			
			String str2=new String();

			//将字符型转化为字符串的表达

			str2=String.valueOf(c1);
			System.out.println("索引"+i+"位置的字符是:"+str2);
				
			//利用循环语句,依次比较此后每个位置的字符是否与该字				//符相等

			//用k进行计数

			int k=0;
			for(int j=0;j<str1.length();j++){

				char c2=str1.charAt(j);
				String str3=String.valueOf(c2);

				//将字符型转化为字符串的表达

				if(str3.equals(str2)){
					k++;
				}
			}System.out.println("出现的次数是"+k);
			
		}
	}
}

 
出现的问题:     

 

       计数准确无误,但是却出现了重复。因为该程序对字符串中的每一个字符都进行了统计,而无论它在该位置之前是否出现过。

解决办法一:       

       利用数组和ascii码进行改写。


相关知识:       

       每个字符都有一个特定的ascii,字符在字符串中多次出现,但ascii码是相同的,运用ascii来统计,可以避免重复计数。       

       java中一维数组每个元素的默认值为0。

修改后的代码如下:
 

public class Change1{

	public static void main(String[] args){

		String str="igiwridsguwifyxhejhjjs";

		int[] array = new int[256];//数组定义格式
		// 定义一个数组进行计数
		for (int i = 0; i < str.length(); i++) {
			//str.length()为字符串长度
			// 获取指定索引位置的字符
			char c = str.charAt(i);
			// 将字符转换为对应的ascii
			int ascii = c;
			// 将对应的ascii位置的数组元素加1
			array[ascii]++;
		}

		// 输出
		for (int i = 0; i < array.length; i++) {
			// 如果统计个数不为0则输出
			if (array[i] != 0) {
				char c = (char) i;
				//强制转换
				System.out.println("字符" + c + "出现的次数是" + array[i]);
			}
		}
	}
}

 

解决办法二:      

 

       利用replace函数将统计过的字符全部替换为空。


相关知识:       

       replace函数可在大字符串中,进行字符或小字符串的替换。

修改后的代码如下:
 

public class Change2{

	public static void main(String[] args){
	//定义字符串变量
		String str1="euriyui3743289^%^&*&DJHK2312";
		
		//利用循环语句,依次获取字符串中每一个字符。
		
		
		for(int i=0;i<=str1.length()+1;i++){
			//i<=str1.length()+1,是为了计算最后一个字符(当单独仅剩下一个只出现一				//次的字符时)
			
			i=0;//修改后
			//获取指定的索引位置的字符
			
			char c1 = str1.charAt(0);
			
			String str2=new String();

			//将字符型转化为字符串的表达

			str2=String.valueOf(c1);
				
			//利用循环语句,依次比较此后每个位置的字符是否与该字						//符相等

			//用k进行计数

			int k=0;
			for(int j=0;j<str1.length();j++){

				char c2=str1.charAt(j);
				String str3=String.valueOf(c2);

				//将字符型转化为字符串的表达

				if(str3.equals(str2)){
					k++;					
				}
			}
			System.out.println("字符"+c1+"出现的次数是"+k);
			str1 = str1.replace(str2, "");			
		}
	}
}

 

思路二:
       运用indecOf()函数对单独的某一个字符进行搜索。再利用循环提取字符串中的每一个字符。(整理后再添加)
 



 

 

分享到:
评论

相关推荐

    VB使用数组分类统计字符

    在这个特定的场景中,我们讨论的是如何使用数组来分类统计字符。以下是对这个主题的详细解释: 一、数组的基本概念 数组是一系列有序的元素集合,每个元素都有一个唯一的索引,可以通过索引来访问和修改这些元素。...

    字符串统计函数,统计不同字符个数和每个字符出现的次数

    而为了统计字符,我们会用到哈希表(Hash Table)或者称为字典(Dictionary),在这里可以使用`std::unordered_map`,它是C++标准库中的一个关联容器,能够提供常数时间的插入和查找操作。 下面是一个简单的实现...

    汇编语言实验报告 用表格形式显示字符 分类统计字符个数 查找电话号码

    本实验报告主要涵盖了三个核心知识点:用表格形式显示字符、分类统计字符个数以及查找电话号码。这些任务都是通过汇编语言实现的,旨在加深对汇编语言的理解和应用能力。 1. **用表格形式显示字符** 在汇编语言中,...

    VC统计字符个数,输入一段字符串,统计其个数

    接着,我们使用范围for循环迭代`input`中的每个字符,每次迭代时`count`自增1,从而统计字符总数。 最后,我们输出结果。这个程序不仅统计了可见字符,还包括空格、标点符号等所有字符。 如果你在项目文件中看到...

    java统计字符串每个字符出现次数

    在Java编程中,统计字符串中每个字符出现的次数是一个常见的任务,特别是在面试或笔试中作为考察点。这个任务可以通过使用HashMap来实现,因为HashMap提供快速的查找和插入操作,适合处理这种计数的问题。以下是一个...

    汇编实验:分类统计字符个数

    ### 汇编实验:分类统计字符个数 #### 实验背景 本实验的主要目标是通过汇编语言来实现一个简单的字符分类统计程序。该程序能够接收用户输入的一行字符(字符数量不超过80个,并以回车符作为结束标志),并对这些...

    C++统计字符个数

    总之,C++中统计字符串字符个数的方法主要包括使用字符数组或关联容器(如`std::map`)。根据实际需求,我们可以选择合适的数据结构和方法来实现这一功能。通过理解和实践这样的基础操作,能够更好地掌握C++语言的...

    设计string类

    1、为该类定义构造函数,析构函数和赋值操作。...3、利用该string类完成测试程序:统计一个文本文件中所有包含给定子串的单词,并按字典序无重复的打印输出这些单词 PS这是一道题目,本人综合了一些成果汇总成了源码

    统计字符串-课程设计

    7. 字符数统计(满分50分) 版本1:满分15分 Write a method that counts the number of letters in a string using the following header: public static int countLetters (String s) Write a test program that ...

    c++作业设计string类

    设计string类 要求: 1、为该类定义构造函数,析构函数和赋值操作。...3、利用该string类完成测试程序:统计一个文本文件中所有包含给定子串的单词,并按字典序无重复的打印输出这些单词 4、程序有充分的注释

    java统计字符串出现次数算法--StringCounter(算法源码)

    * 正则统计字符串出现次数 * * @param source * @param regexNew * @return int */ public static int finder(String source, String regexNew) { String regex = "[a-zA-Z]+"; if (regexNew != ...

    统计一个字符串中某个字符的个数

    以上是使用汇编语言统计字符串中特定字符个数的基本步骤。在实际应用中,可能还需要考虑错误处理、动态计算字符串长度、适应不同操作系统等问题。这个例子只是一个起点,实际的汇编程序会更复杂,但其核心思想是一致...

    C 语言统计字符个数,可以直接编译使用

    在main函数开始处,我们声明了一个大小为100的字符数组string用于存储用户输入的字符串,以及整型变量count来统计字符串中的字符数量。 程序然后使用 printf函数提示用户输入一个字符串。fgets函数用于从键盘获取...

    统计字符串中单词个数实验 C语言

    在本实验中,我们将学习如何使用 C语言统计字符串中单词的个数。该实验旨在掌握并实现统计字符串中单词个数的方法,并编程实现,以便为词法分析打基础。 知识点一: 字符串的定义和初始化 在 C语言中,字符串是使用...

    c语言字符统计.cpp

    c语言字符统计.cpp

    统计字符出现的次数

    在JavaScript(简称JS)编程中,统计字符串中不同字符出现的次数是一项常见的任务。这个任务不仅涉及基础的数据操作,还涉及到字符串遍历、条件判断以及对象的使用等知识点。在这个场景下,我们要实现一个功能,能够...

    C++实现的string 类

    设计string类 要求: 1、为该类定义构造函数,析构函数和赋值操作。构造函数至少应有三个:无参构造...3、利用该string类完成测试程序:统计一个文本文件中所有包含给定子串的单词,并按字典序无重复的打印输出这些单词

    汇编统计字符串数字及字符个数

    - **遍历字符串**:通过循环遍历字符串的每个字符,通常使用`CX`寄存器作为循环计数器,`SI`寄存器作为字符串指针。 4. **字符检测**: 对于每个字符,检查其ASCII值以判断是字母还是数字: - **检查字母**:...

    统计字符串中子字符串出现的次数,并返回

    "统计字符串中子字符串出现的次数,并返回"是一个常见的需求,广泛应用于文本分析、数据挖掘以及日志处理等多个场景。本篇文章将深入探讨如何在C#中实现这一功能,以及涉及到的相关知识点。 首先,我们要明确字符串...

    Qt实现统计文本出现最高频次的字符

    // 统计字符出现的频率 QMap, int&gt; charCount; for (auto c : inputText.toLower()) { if (c.isLetter()) { charCount[c]++; } } // 按出现频率排序并获取前三个 QSortFilterProxyModel proxyModel; ...

Global site tag (gtag.js) - Google Analytics