1.Java的基本数据类型
Java的基本数据类型有8种
整数类型:
byte 字节型 8bit -128~127 (负2的8次方到2的8次方-1)
short 短整型 16bit
int 整型 32bit
long 长整型 64bit
浮点型:
float 单精度 32bit
double 双精度 64bit
布尔
boolean 布尔类型 true和false
字符
char 字符型 16bit
2.String类的使用
1.String在Java中是类。
String 类包括的方法可用于检查序列的单个字符、比较字
符串、搜索字符串、提取子字符串、创建字符串副本并将
所有字符全部转换为大写或小写。
2.String表示的是字符串
Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。
字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的
字符串。因为 String 对象是不可变的,所以可以共享。例如:
String str = "abc";
等效于:
char data[] = {'a', 'b', 'c'};
String str = new String(data);
使用字符串的基本方法,eg:
System.out.println("abc");
String cde = "cde";
System.out.println("abc" + cde);
String c = "abc".substring(2,3);
String d = cde.substring(1, 2);
练习:统计字符串中每一个字符出现的次数
我的代码:
package ss;
public class string {
/**
* 主函数
*/
public static void main(String[] args) {
//定义一个字符串变量
String str="euriyui3743289^%^&*&DJHK2312";
//第一个循环:返回第i个引索处的char值
for(int i=0;i<str.length();i++){
char a=str.charAt(i);
int index=str.indexOf(a);
int n=str.lastIndexOf(a);//第i个字符所在的最后位置
int k=0;
//第二个循环:在给定字符串中找出与第一个循环中相同的字符
for(int j=index;j<str.length();j++){
char b=str.charAt(j);
if(a==b&&b!=' '){
k++;
if(j>=n)//当且仅当找到最终出现的相同字符才输出个数
System.out.println(a+"字符出现的次数为"+k);
}
}
//第三个循环:用空格替换找出的相同字符
for(int x=0;x<str.length();x++){
char c=str.charAt(x);
if(c==a)
str=str.replace(c,' ');}
}
}
}
解题思路:
在该代码中使用了三个循环,其中第一个和第二个循环构成一组内外循环;用于寻找字符串中相同的字符及计算其个数。第三个循环和第一个并列,用于将计算过的字符转换成空格。
使用到的String类中的方法有charAt()、indexOf()、lastIndexOf()、length()、replace()。
cherAt()在该代码中的作用是将字符串中的字符一个个拆分,易于比较。
indexOf()和lastIndexOf()分别用来找到字符在字符串中出现的最前和最后位置。
length()计算字符串的长度,使循环有一个终点。
replace()是string中字符与字符之间的替换。
练习中遇到的问题及解答方法:
1.首先想到用内外循环来完成对每个字符出现个数的计算。但因为开始时将计算个数的变量初始化k=0放在第一个循环之前,导致从第二个字符开始,每个字符出现次数都是前面字符与该字符总数之和,于是将初始化k=0放在第一个循环之内,这样,每计算一个字符时都会初始化k值。
2.在循环时发现每次第二个循环中找出与第一个循环中相同的字符时就会立即输出个数,当遇到第二个时又会输出,同时个数+1,而且即使后面的字符与前面的相同,也会重复输出。解决前者,用到了lastIndexOf(),直到找到了最后一个才输出。解决后者,用到了replace(),将找过的字符用空格替换,只有当找出的字符不是空格时才输出。但其实这样再用一个循环比较繁琐。
看看其他人的代码:
同组组员代码:
package stringcount;
public class ctest0705 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "hdjsakhdjksahkdjhasyrtr";
int n;
//外循环:从字符串第一个开始与后面的比较
for(int i = 0;i < str.length();){
char a = str.charAt(i);
int k = 0;
//内循环:从被比较的开始进行比较,相同k+1
for(
n = 0;n < str.length();n++){
char b = str.charAt(n);
if(a == b)
k++;
}
System.out.println(a+"的个数为"+k);
String str1 = str.valueOf(a);
str = str.replace(str1, ""); }
}
}
老师的代码:
package cn.netjava.lesson01;
public class StringPractise {
/**
* @param args
*/
public static void main(String[] args) {
// 实例化一个接受命令行输入信息的对象
java.util.Scanner sc = new java.util.Scanner(System.in);
// 实例化StringPractise类的对象
StringPractise sp = new StringPractise();
System.out.println("请输入要统计的字符串:");
// 获取输入的一行字符串
String temp = sc.nextLine();
System.out.println("开始使用第一种方式统计.");
//调用第一种统计的方式
sp.wayOne(temp);
System.out.println("请输入要统计的字符串:");
// 获取输入的一行字符串
temp = sc.nextLine();
System.out.println("开始使用第二种方式统计.");
// 调用第二种统计的方式
sp.wayTwo(temp);
}
/**
* 第一种统计方式 根据ascii和数组来实现
*/
public void wayOne(String temp) {
// 定义一个存储统计次数的数组
int[] array = new int[256];
// 循环遍历字符串
for (int i = 0; i < temp.length(); i++) {
// 获取指定索引位置的字符
char c = temp.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方法来实现
*/
public void wayTwo(String temp) {
// 循环遍历字符串
for (int i = 0; i < temp.length();) {
int count = 1;// 计数器
// 循环遍历字符串,从i+1的基础上开始,让i位置的每一个字符都与后边的字符进行比较
for (int j = i + 1; j < temp.length(); j++) {
// 如果相等
if (temp.charAt(i) == temp.charAt(j)) {
// 计数器加1
count++;
}
}
System.out.println("字符" + temp.charAt(i) + "出现的次数是" + count);
// 将相同的字符全部都替换为空
temp = temp.replace(temp.charAt(i) + "", "");
}
}
}
分享到:
相关推荐
在Java编程语言中,数据类型分为两大类:基本类型(primitive types)和引用类型。基本类型直接存储值,而引用类型则存储指向对象的引用。本文将深入探讨Java中的基本类型以及String类型的特性与用法。 #### Java...
本实验报告总结了Java中的基本数据类型、数据类型转换、控制台输入输出方法和对话框输入输出方法。实验结果证明了Java中的数据类型系统的强大和灵活性。本实验为Java编程的基础知识提供了一个良好的开端。
- Java提供了如`Integer`、`Double`这样的封装类,它们是基本数据类型对应的类形式,提供了额外的方法和功能,如格式化输出、比较等。 8. **Runtime类与Process类** - `Runtime`类提供了运行时环境的访问,可以...
本文总结了Java基础知识点,涵盖String类、Math类、File类和枚举等方面。 String类 String类是Java语言中最基本的字符串类,它提供了多种方法来操作字符串。StringBuffer类是String类的可变版本,提供了更多的功能...
本总结共11页,将深入探讨`StringBuffer`类及其与基本数据类型相关的操作。 首先,`StringBuffer`是`StringBuilder`的线程安全版本。两者都是用来处理字符串的可变对象,与不可变的`String`类不同。在单线程环境中...
12. **copyValueOf(char[] data, int offset, int length)和valueOf()系列方法**:前者从字符数组的一部分创建一个新的字符串,后者提供了多种静态方法,可将不同数据类型(如整数、布尔值、浮点数等)转换为它们的...
总结,Java的基本数据类型及基本操作构成了编程的基础。理解并熟练掌握这些概念和操作,是成为一名合格Java程序员的关键。在实际编程中,应注重良好的编程习惯,以提高代码质量和可读性,并通过测试和调试确保程序的...
- **定义**:Java中的基本数据类型包括整型(int、short、long等)、浮点型(float、double)、字符型(char)、布尔型(boolean)等。 - **存储位置**:基本数据类型的变量直接存储在栈内存中。 ##### 2. 引用数据类型 - ...
Java 中的 String 类是 Java 编程语言中最基本的数据类型之一。String 类是 Java 的一个 final 类,无法被继承。它是 Java 中用于表示字符串的类。Java 中的 String 类有很多特点和用途,本文将深入探讨 Java 中的 ...
- 说明:当需要处理超出基本数据类型范围的大整数时,`BigInteger`类提供了一种解决方案。它可以执行加减乘除等各种操作。 - 应用场景:在密码学领域、安全协议及高性能计算中经常遇到大整数处理的需求。 #### ...
在AIDL中,我们可以声明方法和参数,参数可以是基本数据类型(如int、String等)或者自定义的数据类型。 在处理非基本数据类型时,AIDL需要一个特殊的步骤,即定义一个Parcelable接口实现类。Parcelable接口是...
XML Schema 内置类型是 XML 文档中使用的基本数据类型,它们可以分为基础类型和派生类型两类。基础类型是解析系统直接支持的原始类型,而派生类型是对基础类型或其他内置派生类型加以限制生成的。 基础类型 1. ...
Java的数据类型主要分为两大类:基本数据类型(Primitive Data Types)和引用数据类型(Reference Data Types)。基本数据类型包括布尔型(boolean)、字符型(char)、整型(byte, short, int, long)和浮点型...
js中的基本数据类型有六种:Number(数字数据类型)、String(字符串数据类型)、Boolean(布尔数据类型)、undefined(未定义数据类型)、null(空值)。Number类型包括int(整数)和float(浮点数),还有NaN(not...
在Java编程语言中,数据类型分为两种:基本数据类型(如int、char)和引用数据类型(如类、接口、数组)。而在Java持久化框架Hibernate中,这些数据类型需要与数据库中的字段类型进行映射,以便正确地存储和检索数据...
### Python3基本数据类型详解 Python3作为一种广泛使用的高级编程语言,其强大的功能之一便是对各种数据类型的灵活处理。在Python3中,数据类型分为两大类:不可变数据类型和可变数据类型。不可变数据类型包括数字...
### C++中的string类 #### 引言 在C++编程语言中,`string`...无论是基本操作还是复杂的字符串处理任务,`string`类都能提供强大的支持。在实际开发过程中,熟练掌握并运用这些技巧将极大地提升编程效率和代码质量。
Java为每种基本数据类型都提供了一个对应的包装类,这些包装类提供了额外的功能和操作。以下是一些常用的基本数据类型与包装类的对应关系及其默认值: 1. **short** → **Short** → 默认值0 2. **int** → **...
总结来说,通过以上知识点,我们可以了解到如何从头开始设计和实现一个简单的C++字符串类,模拟标准库中的string行为。这不仅有助于理解标准string的工作原理,还能加深对C++面向对象编程的理解,特别是关于封装、...
在使用PHP进行编程时,了解和掌握这些基本数据类型以及它们的特性是非常重要的。这不仅可以帮助开发者编写出更清晰、更高效的代码,还可以避免许多常见的错误和问题。通过对数据类型的学习和实践,可以更好地掌握PHP...