Day7 String类
- 字符串的构造方法和直接创建
- 字符串的比较相关方法
- 字符串的获取相关方法
- 字符串的截取方法
- 字符串的转换相关方法
- 字符串的分割方法
- 字符串的相关练习
语法
// import java.lang.String; // lang包内类无需导入public class StringDemo {public static void main(String[] args) {/* 构造方法 */// 无参构造String str1 = new String(); // 空字符串// 通过字符数组构造char chars[] = {'a', 'b', 'c'};String str2 = new String(chars);// 通过字节数组构造byte bytes[] = { 97, 98, 99 }; // "abc"String str3 = new String(bytes);// 直接构造String str4 = "Hello";/* 常用方法 */// 判断功能的方法"abc".equals(str2); // 推荐str2.equals("abc"); // 不推荐"ABC".equalsIgnoreCase(str2); // true// 获取功能的方法str1.length(); // 获取字符串的长度String str5 = "World";str4.concat(str5); // 拼接字符串"Hello".charAt(1); // 获取指定索引位置的单个字符// 查找参数字符串在本来字符串当中出现的第一次索引位置// 如果根本没有,返回-1值"HelloWorld".indexOf("llo"); // 4// 字符串的截取方法:[begin,end)"HelloWorld".substring(4, 7); // owo// 转换类型的方法char[] chs = str2.toCharArray(); // 转换为字符数组byte[] bytes1 = str2.getBytes(); // 转换为字节数组// 字符串的内容替换str2.replace("ab", "12"); // 12c// 分割功能的方法"aa,bb,cc".split(","); // ["aa","bb","cc"]}
}
练习
package wangc.pac;/*
题目1:
定义一个方法,把数组{1,2,3}按照指定格式拼接成一个字符串。格式参照如下:[word1#word2#word3]。
题目2:
键盘输入一个字符串,并且统计其中各种字符出现的次数。种类有:大写字母、小写字母、数字、其他。
*/import java.util.Scanner;public class StringPractice {public static void main(String[] args) {int[] arr = {1, 2, 3, 4};String result = fromArrayToString(arr);System.out.println(result);stringCount();}public static String fromArrayToString(int[] arr) {String str = "[";for (int i = 0; i < arr.length; i++) {if(i == arr.length-1) {str += "word" + arr[i] + "]";}else {str += "word" + arr[i] + "#";}}return str;}public static void stringCount() {String str = new Scanner(System.in).next();int countUpper = 0; // 大写字母int countLower = 0; // 小写字母int countNumber = 0; // 数字int countOther = 0; // 其他字符for (int i = 0; i < str.length(); i++) {char ch = str.charAt(i);if ('A' <= ch && ch <= 'Z') {countUpper++;} else if ('a' <= ch && ch <= 'z') {countLower++;} else if ('0' <= ch && ch <= '9') {countNumber++;} else {countOther++;}}System.out.println("大写字母有:" + countUpper);System.out.println("小写字母有:" + countLower);System.out.println("数字有:" + countNumber);System.out.println("其他字符有:" + countOther);}
}
一些细节
1. Java 语言提供对字符串串联符号("+")以及将其他对象转换为字符串的特殊支持。
2. Java 中的引号是有区分的
char c = 'a'; // 单引号
String s = "hello"; // 双引号
6. String 属于基础的数据类型吗?
String 不属于基础类型,基础类型有 8 种:byte、boolean、char、short、int、float、long、double,而 String 属于对象。
7. java 中操作字符串都有哪些类?它们之间有什么区别?
操作字符串的类有:String、StringBuffer、StringBuilder。
- String:不可变的字符序列
- StringBuffer:可变的字符序列;线程安全,效率低;
- StringBuilder:可变的字符序列;线程不安全,效率高;jdk5.0新增
- 三者底层都使用char[]存储
- 在经常改变字符串内容的情况下最好不要使用 String。
- 单线程环境下推荐使用 StringBuilder,多线程环境下推荐使用 StringBuffer。
8. String str="i"与 String str=new String("i")一样吗?
不一样,因为内存的分配方式不一样。String str="i"的方式,java 虚拟机会将其分配到常量池中;
而 String str=new String("i") 则会被分到堆内存中。
9. 如何将字符串反转?
使用 StringBuilder 或者 stringBuffer 的 reverse() 方法。
示例代码:
// StringBuffer reverse
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("abcdefg");
System.out.println(stringBuffer.reverse()); // gfedcba
// StringBuilder reverse
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("abcdefg");
System.out.println(stringBuilder.reverse()); // gfedcba
10. String 类的常用方法都有那些?
indexOf():返回指定字符的索引。
charAt():返回指定索引处的字符。
replace():字符串替换。
trim():去除字符串两端空白。
split():分割字符串,返回一个分割后的字符串数组。
getBytes():返回字符串的 byte 类型数组。
length():返回字符串长度。
toLowerCase():将字符串转成小写字母。
toUpperCase():将字符串转成大写字符。
substring():截取字符串。
equals():字符串比较。
Day7 String类相关推荐
- C++ 笔记(22)— STL string 类(字符串赋值、访问、拼接、查找、翻转、大小写转换)
1. 实例化和赋值 STL string #include <string> #include <iostream>int main () {using namespace s ...
- java string改变的影响_为什么Java的string类要设成immutable(不可变的)
最流行的Java面试题之一就是:什么是不可变对象(immutable object),不可变对象有什么好处,在什么情况下应该用,或者更具体一些,Java的String类为什么要设成immutable类 ...
- C++——String类超详细介绍
(欢迎及时指正错误!谢谢) STL的含义:标准模板库 STL的内容: 容器:数据的仓库 算法:与数据结构相关的算法.通用的算法(和数据结构无关) 注:熟悉常用的算法 sort reverse 迭代器 ...
- 标准C++中的string类的用法总结
相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯 ...
- c++ string replace_JAVA应用程序开发之String类常用API
[本文详细介绍了JAVA应用开发中的String类常用API,欢迎读者朋友们阅读.转发和收藏!] 1 基本概念 API ( Application Interface 应用程序接口)是类中提供的接口, ...
- javascript:为string类添加三个成员,实现去左,右,及所有空格
<script language="JavaScript"> //此处为string类添加三个成员 String.prototype.Trim = func ...
- 字符串(string类)
[1]String类基本函数如何实现? 示例代码如下: 1 #include<iostream> 2 #include<assert.h> 3 #include<stri ...
- 交换变量和String类初始化:JAVA入门基础
本文主要介绍了变量交换.String类初始化.字符串的基本操作.变量交换详解介绍了两个变量是如何交换的,通过例子理解这个用法. 一.交换变量 1.什么是交换变量 例如用户输入a.b的值分别3,9的整数 ...
- 带你进入String类的易错点和底层本质分析!
来源:https://my.oschina.net/liboware/blog/5076245 字符串拼接及创建的案例分析 案例一 String a = "test"; Strin ...
最新文章
- STM32固件库的安装与介绍
- 漫画:HTTP之大明邮差
- Windows未能启动,原因可能是最近更改了硬件或软件,解决此问题的步骤
- python--数据类型bytes
- c语言中数组结尾的0的作用,C语言里面一个数组最后的\0表示什么意思?
- 【渝粤教育】国家开放大学2018年春季 7408-21T多媒体软件制作与使用 参考试题
- PCB和PCBA设计及标准
- 牛客网刷题记录——数理统计(累积记录)
- 在css中translate表示,css中位移translate()如何使用?translate用法总结
- NYOJ 找球号(二)(哈希表)
- 【专栏】核心篇07| Redis “jio”美的集群模式
- aardio - 仿安装界面进行窗口高度调节的方法
- 使用Python实现基于API的网易有道翻译功能
- Linux ARM平台开发系列讲解(GMSL摄像头篇)1.2 MAX9296 GMSL链路配置
- 火车站的江湖,远比你想象的深
- FPGA云原生 Xilinx FPGA_as_a_Service 概述
- 再见2021,程序员如何走向鄙视链的顶端?
- 取消漫游费,移动通信服务资费对农村用户来说不公平
- Ruoyi用户菜单权限
- 看完你的博文,我的心情竟是久久不能平复