• 字符串的构造方法和直接创建
  • 字符串的比较相关方法
  • 字符串的获取相关方法
  • 字符串的截取方法
  • 字符串的转换相关方法
  • 字符串的分割方法
  • 字符串的相关练习

语法

// 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类相关推荐

  1. C++ 笔记(22)— STL string 类(字符串赋值、访问、拼接、查找、翻转、大小写转换)

    1. 实例化和赋值 STL string #include <string> #include <iostream>int main () {using namespace s ...

  2. java string改变的影响_为什么Java的string类要设成immutable(不可变的)

    最流行的Java面试题之一就是:什么是不可变对象(immutable object),不可变对象有什么好处,在什么情况下应该用,或者更具体一些,Java的String类为什么要设成immutable类 ...

  3. C++——String类超详细介绍

    (欢迎及时指正错误!谢谢) STL的含义:标准模板库 STL的内容: 容器:数据的仓库 算法:与数据结构相关的算法.通用的算法(和数据结构无关) 注:熟悉常用的算法 sort  reverse 迭代器 ...

  4. 标准C++中的string类的用法总结

    相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯 ...

  5. c++ string replace_JAVA应用程序开发之String类常用API

    [本文详细介绍了JAVA应用开发中的String类常用API,欢迎读者朋友们阅读.转发和收藏!] 1 基本概念 API ( Application Interface 应用程序接口)是类中提供的接口, ...

  6. javascript:为string类添加三个成员,实现去左,右,及所有空格

    <script language="JavaScript">    //此处为string类添加三个成员    String.prototype.Trim = func ...

  7. 字符串(string类)

    [1]String类基本函数如何实现? 示例代码如下: 1 #include<iostream> 2 #include<assert.h> 3 #include<stri ...

  8. 交换变量和String类初始化:JAVA入门基础

    本文主要介绍了变量交换.String类初始化.字符串的基本操作.变量交换详解介绍了两个变量是如何交换的,通过例子理解这个用法. 一.交换变量 1.什么是交换变量 例如用户输入a.b的值分别3,9的整数 ...

  9. 带你进入String类的易错点和底层本质分析!

    来源:https://my.oschina.net/liboware/blog/5076245 字符串拼接及创建的案例分析 案例一 String a = "test"; Strin ...

最新文章

  1. STM32固件库的安装与介绍
  2. 漫画:HTTP之大明邮差
  3. Windows未能启动,原因可能是最近更改了硬件或软件,解决此问题的步骤
  4. python--数据类型bytes
  5. c语言中数组结尾的0的作用,C语言里面一个数组最后的\0表示什么意思?
  6. 【渝粤教育】国家开放大学2018年春季 7408-21T多媒体软件制作与使用 参考试题
  7. PCB和PCBA设计及标准
  8. 牛客网刷题记录——数理统计(累积记录)
  9. 在css中translate表示,css中位移translate()如何使用?translate用法总结
  10. NYOJ 找球号(二)(哈希表)
  11. 【专栏】核心篇07| Redis “jio”美的集群模式
  12. aardio - 仿安装界面进行窗口高度调节的方法
  13. 使用Python实现基于API的网易有道翻译功能
  14. Linux ARM平台开发系列讲解(GMSL摄像头篇)1.2 MAX9296 GMSL链路配置
  15. 火车站的江湖,远比你想象的深
  16. FPGA云原生 Xilinx FPGA_as_a_Service 概述
  17. 再见2021,程序员如何走向鄙视链的顶端?
  18. 取消漫游费,移动通信服务资费对农村用户来说不公平
  19. Ruoyi用户菜单权限
  20. 看完你的博文,我的心情竟是久久不能平复

热门文章

  1. 已知补码如何求原码、真值
  2. osg 三维gis开发_3D GIS与BIM的美丽邂逅(艾三维BIM分享)
  3. FL Studio最新20.9中文豪华顶配购买指南
  4. 2015 kitti 数据集_KITTI 数据集
  5. 如何去除短视频中的硬字幕
  6. 记一次太阳神三国杀的编译
  7. Eclipse 3.6 M7(太阳神版)发布
  8. SQL create file遇到操作系统错误5拒绝访问
  9. 学习记录-钓鱼网站总结
  10. 三星手机提取微信聊天数据