`
狼迹天涯
  • 浏览: 6386 次
  • 性别: 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()函数对单独的某一个字符进行搜索。再利用循环提取字符串中的每一个字符。(整理后再添加)
 



 

 

分享到:
评论

相关推荐

    设计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语言字符统计.cpp

    c语言字符统计.cpp

    C++实现的string 类

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

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

    使用java统计字符串中每个字符出现的次数,尤其是笔试题或者上机最容易考。 需要统计的字符串:aBbcddedfadg准备开始统计每个字符出现的次数... f:1次;g:1次;d:4次;e:1次;b:1次;c:1次;B:1次;a:2次;

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

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

    汇编语言字符串统计

    原理:输入一个字符串到定义好的空间string中,以’$’结束,同时获得字符的个数;将computer单词放在keyword里,以computer的个数作为内循环的次数(8次),循环比较,相同则计数器加1,否则不加,string的指针...

    统计字符串每个字母出现的次数

    有如下的一个字符串 String str = “QWERTYUIQQQWJHDAADADBBBBCAD”; 请统计出其中每一个字母出现的次数,在控制台打印如下的格式: A----3 B----4 C----1 D----2 请打印出字母次数最多的那一对

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

    设计一个程序,可输入文本, 并统计输入文本中出现频率最高的 3 个字或字 母(不统计数字) , 显示出现次数。

    字符统计(指针)(XDOJ).cpp

    定义一个一维字符数组string[100],输入一个字符串,含N个字符(N≤100),定义一个整形数组num[5],用于存放统计结果数据,编写函数count()统计字符串中大写字母、小写字母、空格、数字以及其他字符的个数,使用...

    Java中英文字符类型统计.rar

    将arrChar中的每个字符转换为String类型之后,存放在arrStr数组中,创建一个String类型的数组,其长度为arrChar的长度,然后再将arrChar中的每个字符转换为String类型之后,存放在arrStr数组中。遍历arrStr数组,...

    java JAVA数组与字符串,编写图形界面的程序,接收用户输入的一个字符串和一个字符,将字符串中出现的所有该字符删除,打印新生成的字符串。

    java JAVA数组与字符串,编写图形界面的程序,接收用户输入的一个字符串和一个字符,将字符串中出现的所有该字符删除,打印新生成的字符串。 String 类或StringBuffer类 deleteCharAt方法

    统计字符串.zip

    中南大学 汇编 上机 统计字符串 datarea segment letter1 db ? digit1 db ? other1 db ? print db 13,10,'Please enter the string:','$' mess1 db 13,10, 'The total number of letter : ','$' mess2 db 13,...

    java实验一 图形 字符串 复数

    4、 给定的字符串数组:strings s[] = {“string”,”starting”,”strong”,”street”,”stir”,”studeng”,”soft”,”sting”},编写应用程序,统计以”st”开头的字符串有多少个,以”ng”结尾的字符串有多少个...

    读取txt文件,统计“java”字符串出现的次数

    读取txt文件,统计“java”字符串出现的次数

    【Python练习】统计字符串中的字符个数

    统计字符串中的字符个数 题目内容: 定义函数countchar()按字母表顺序统计字符串中所有出现的字母的个数(允许输入大写字符,并且计数时不区分大小写)。形如: def countchar(string): … … return a list if name...

    VC++统计出中英文混合字符中的中文字符个数

    内容索引:VC/C++源码,字符处理,字符统计 这个小程序很实用的个人觉得,可以统计一段中英文混合字符串中所有中文的字符个数,它能识别英文、标点以及特殊字符,仅挑选出中文字符来统计,程序主要是根据编码进行统计...

    Java探索之string字符串的应用代码示例

    主要介绍了Java探索之string字符串的应用代码示例,具有一定参考价值,需要的朋友可以了解下。

Global site tag (gtag.js) - Google Analytics