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()函数对单独的某一个字符进行搜索。再利用循环提取字符串中的每一个字符。(整理后再添加)
相关推荐
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 ...
设计string类 要求: 1、为该类定义构造函数,析构函数和赋值操作。...3、利用该string类完成测试程序:统计一个文本文件中所有包含给定子串的单词,并按字典序无重复的打印输出这些单词 4、程序有充分的注释
* 正则统计字符串出现次数 * * @param source * @param regexNew * @return int */ public static int finder(String source, String regexNew) { String regex = "[a-zA-Z]+"; if (regexNew != ...
c语言字符统计.cpp
设计string类 要求: 1、为该类定义构造函数,析构函数和赋值操作。构造函数至少应有三个:无参构造...3、利用该string类完成测试程序:统计一个文本文件中所有包含给定子串的单词,并按字典序无重复的打印输出这些单词
使用java统计字符串中每个字符出现的次数,尤其是笔试题或者上机最容易考。 需要统计的字符串:aBbcddedfadg准备开始统计每个字符出现的次数... f:1次;g:1次;d:4次;e:1次;b:1次;c:1次;B:1次;a:2次;
在main函数开始处,我们声明了一个大小为100的字符数组string用于存储用户输入的字符串,以及整型变量count来统计字符串中的字符数量。 程序然后使用 printf函数提示用户输入一个字符串。fgets函数用于从键盘获取...
原理:输入一个字符串到定义好的空间string中,以’$’结束,同时获得字符的个数;将computer单词放在keyword里,以computer的个数作为内循环的次数(8次),循环比较,相同则计数器加1,否则不加,string的指针...
有如下的一个字符串 String str = “QWERTYUIQQQWJHDAADADBBBBCAD”; 请统计出其中每一个字母出现的次数,在控制台打印如下的格式: A----3 B----4 C----1 D----2 请打印出字母次数最多的那一对
设计一个程序,可输入文本, 并统计输入文本中出现频率最高的 3 个字或字 母(不统计数字) , 显示出现次数。
定义一个一维字符数组string[100],输入一个字符串,含N个字符(N≤100),定义一个整形数组num[5],用于存放统计结果数据,编写函数count()统计字符串中大写字母、小写字母、空格、数字以及其他字符的个数,使用...
将arrChar中的每个字符转换为String类型之后,存放在arrStr数组中,创建一个String类型的数组,其长度为arrChar的长度,然后再将arrChar中的每个字符转换为String类型之后,存放在arrStr数组中。遍历arrStr数组,...
java JAVA数组与字符串,编写图形界面的程序,接收用户输入的一个字符串和一个字符,将字符串中出现的所有该字符删除,打印新生成的字符串。 String 类或StringBuffer类 deleteCharAt方法
中南大学 汇编 上机 统计字符串 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,...
4、 给定的字符串数组:strings s[] = {“string”,”starting”,”strong”,”street”,”stir”,”studeng”,”soft”,”sting”},编写应用程序,统计以”st”开头的字符串有多少个,以”ng”结尾的字符串有多少个...
读取txt文件,统计“java”字符串出现的次数
统计字符串中的字符个数 题目内容: 定义函数countchar()按字母表顺序统计字符串中所有出现的字母的个数(允许输入大写字符,并且计数时不区分大小写)。形如: def countchar(string): … … return a list if name...
内容索引:VC/C++源码,字符处理,字符统计 这个小程序很实用的个人觉得,可以统计一段中英文混合字符串中所有中文的字符个数,它能识别英文、标点以及特殊字符,仅挑选出中文字符来统计,程序主要是根据编码进行统计...
主要介绍了Java探索之string字符串的应用代码示例,具有一定参考价值,需要的朋友可以了解下。