一、String字符串理解

  java字符串类,包含了字符串的值和实现字符串相关操作的一些方法

  1、String字符串可分静态字符串和动态字符串

  静态初始化字符串:String s1 = "hello";

  动态初始化字符串:String s2 = new String("hello");

  2、静态初始化与动态初始化的区别

  String s = "hello";  //在字符串常量池中分配空间(静态) 
  String s = String("hello");//在对堆内存中分配空间(动态) 

二、String字符串常用方法

  charAt(int index) //返回指定下标的字符(从零开始)

  compareTo(String s)  //字符串比较 
  concat(String s)  //字符串包含/拼接 
  equals() //判断两个字符串内容是否相同

 getBytes()  //返回字节数组

  indexOf()  //查找子串下标 
  split()//分割字符串返回字符串数组与StringTokenizer有相识的功能【常用】 
  subString()//获取子串 
  toString()//对象转化为大写字母 
  toLowerCase()//转换为小写字母
 
  实例如下: 

  字符串和字符数组的转换  

public class string001 {
public static void main(String[] args)
{
String str1= "xiaoluo"; //定义一个字符串
char c[] = str1.toCharArray(); //toCharArray:将前面的name字符串转换为一个数组
for (int i=0;i<c.length;i++)
{
System.out.print(c[i]+"\t"); //循环取出数组中的每一个元素
}
System.out.println(""); //换行
String str2 = new String(c); //将全部数组转换至一个字符串
String str3 = new String(c,0,3); //将0-3个元素转换至一个字符串
System.out.println(str2);
System.out.println(str3);
}
}
//x i a o l u o
//xiaoluo
//xia

  字符串中取出指定位置的字符  

public class String002 {
public static void main(String[] args)
{
String str1 = "xiaoluo"; //声明一个字符串
System.out.println(str1.charAt(3));//charAt方法:取出字符串下标为3的元素
}
}
//o

  将一个字符串变成一个byte数组,同时将一个byte数组变成一个字符串

  字符串可以通过getBytes()方法将String变成一个byte数组,然后可以通过String的构造方法将一个字节数组从新变为字符串

public class String003 {
public static void main(String[] args)
{
String str1 ="beijing"; //声明一个字符串
byte b[] =str1.getBytes(); //通过getBytes:将字符串转换为一个字节数组
System.out.println(new String(b)); //将整个字节数组转换为一个字符串
System.out.println(new String(b,1,3));//将字节数组b中下标为1-3的元素转换为字符串
}
}
//beijing
//eij

  获取一个字符串所占长度

  通过调用length方法获取了字符串的长度

public class StringLength {
public static void main(String[] args)
{
String str1 = "beijing"; //声明一个字符串
System.out.println("str1字符串长度为:"+str1.length());//通过length获取字符串长度
}
}
//str1字符串长度为:7

  注意:length和length()区别?

    先明确一点,任何方法的调用后面必须带()才是实现,而length是取数组长度,元素后没有带()括号,而字符串调用length是一个方法,方法的调用后面必须带()

  indexOf方法查找指定的字符串中是否存在某个元素

public class String_indexOf {
public static void main(String[] args)
{
String str1 = "qwertyuioepe";//声明一个字符串
System.out.println(str1.indexOf("w"));//通过indexOf方法查找字符串中是否存在w元素存在位置
System.out.println(str1.indexOf("e",4));//通过indexOf方法查找e元素是否存在并从第四个元素开始查找第一个e
System.out.println(str1.indexOf("b"));//字符串中不存在的元素返回-1
}
}
//1
//9
//-1

  去除左右两边空格

  trim()方法去除字符串中多余空格  

public class String_indexOf {
public static void main(String[] args)
{
String str1 = " qwertyuioepe ";//声明一个字符串
System.out.println(str1.trim());//trim方法:去除字符串中左右两边的空格
System.out.println(str1);
}
}
//qwertyuioepe
// qwertyuioepe

  字符串截取

  通过substring()方法截取指定的字符串或字符串之间的元素

public class String_indexOf {
public static void main(String[] args)
{
String str1 = "qwertyuioepe";//声明一个字符串
System.out.println(str1.trim());//trim方法:去除字符串中左右两边的空格
// System.out.println(str1);
System.out.println(str1.substring(4));//substring方法:从四个元素开始截图后面的元素
System.out.println(str1.substring(0,4));//结果下标为0-4之间的元素
}
}
//qwertyuioepe
//tyuioepe
//qwe

  按照指定的字符串拆分字符串

  在Stringzing通过split()方法可以进行字符串的拆分操作,拆分的数据将Yui字符串数组的形式返回,如下是按照空格进行拆分并将拆分的字符串保存在一个列表

public class String_indexOf {
public static void main(String[] args)
{
String str1 = "hello world";//声明一个字符串
String str2[] = str1.split(" ");//按照空格对str1中字符串进行拆分并将拆分的元素保存在一个列表
for(int i=0;i<str2.length;i++) //循环输出str2[]中所有元素
{
System.out.println(str2[i]);
}
}
}
//hello
//world

   判断字符串以某某开头或某某结尾

  startsWith:判断字符串以某某开头

  endsWith:判断字符串以某某结尾

public class String_indexOf {
public static void main(String[] args)
{
String str1 = "***hello world";//声明一个字符串
String str2 = "nihao***";
if(str1.startsWith("***"))
{
System.out.println("(***hello world)以***开头");
}
if(str2.endsWith("***"))
{
System.out.println("(nihao***)以***结尾");
}
}
}
//(***hello world)以***开头
//(nihao***)以***结尾

  指定字符串进行替换

  在String中使用replaceAll可对字符串中存在字符进行指定行替换 

public class String_indexOf {
public static void main(String[] args) {
String str1 = "hello world";//声明一个字符串
String str2 = str1.replaceAll("w","W");//replaceAll方法:将w元素替换成W
System.out.println(str2);
}
}
//hello World

java-String基础篇的更多相关文章

  1. 你所不知道的库存超限做法 服务器一般达到多少qps比较好[转] JAVA格物致知基础篇:你所不知道的返回码 深入了解EntityFramework Core 2.1延迟加载(Lazy Loading) EntityFramework 6.x和EntityFramework Core关系映射中导航属性必须是public? 藏在正则表达式里的陷阱 两道面试题,带你解析Java类加载机制

    你所不知道的库存超限做法 在互联网企业中,限购的做法,多种多样,有的别出心裁,有的因循守旧,但是种种做法皆想达到的目的,无外乎几种,商品卖的完,系统抗的住,库存不超限.虽然短短数语,却有着说不完,道不 ...

  2. java 线程基础篇,看这一篇就够了。

    前言: Java三大基础框架:集合,线程,io基本是开发必用,面试必问的核心内容,今天我们讲讲线程. 想要把线程理解透彻,这需要具备很多方面的知识和经验,本篇主要是关于线程基础包括线程状态和常用方法. ...

  3. JDBC-使用Java连接数据库-基础篇

    这是小主第一次写Java连接数据库博客,初学Java之时,Java连接数据库是我最头疼的,不过经过一个月的学习,也差不多略有收获,所以给大家分享一下. Java连接数据库大约需要五大步骤: 创建数据库 ...

  4. java面试基础篇(三)

    1.Q:ArrayList 和 LinkedList 有什么区别? A:ArrayList查询快!LinkedList增删快.ArrayList是基于索引的数据接口,它的底层是数组.空间占用相对小一些 ...

  5. java面试基础篇(二)

    上一篇,我们说了一下线程和Map,或许那些太抽象,不太好理解,也不太方便记忆,我们这次说一些简单的. 1.Q:java的基本数据类型有哪些? A:四种整数类型(byte.short.int.long) ...

  6. 新年在家学java之基础篇-高级类的特性

    继承 extends 子类的共性代码都是继承自父类的,每个子类只要写自己特有的代码 class 子类 extends 父类 继承提高了代码的复用性,提供了多态的前提,但是不要为了某个功能去继承 子类不 ...

  7. JAVA格物致知基础篇:用JAX-RS和Jersey打造RESTful Service

    随着服务器的处理能力越来越强,业务需求量的不断累积,越来越多的公司开始从单一服务器,单一业务承载变成了多服务器,多业务承载的快速扩展的过程中.传统的方法很难满足和应付这种业务量的增长和部署方式的改变. ...

  8. Java编程基础篇第六章

    构造方法 一:概念: 给对象的数据(属性)进行初始化 二:特点: a.方法名与类同名(字母大小写也要一样) b.没有返回值类型 c.没有具体的返回值 return 三:构造方法重载: 方法名相同,与返 ...

  9. Java编程基础篇第五章

    数组概述 概念:数组是存储同一种数据类型多个元素的集合.也可以看成是一个容器.数组既可以存储基本数据类型,也可以存储引用数据类型.应用场景:为了存储同种数据类型的多个值 数组定义格式 格式1:元素类型 ...

  10. Java编程基础篇第三章

    逻辑运算符 与(&)(&&),或(||)(|),非(!) &和&&的区别 &:无论&的左边真假,右边都进行运算 &&:当 ...

随机推荐

  1. java实现httpclient 访问

    package com.test; import java.io.File; import java.io.FileInputStream; import java.io.IOException; i ...

  2. SPSS数据分析—非线性回归

    线性回归的首要满足条件是因变量与自变量之间呈线性关系,之后的拟合算法也是基于此,但是如果碰到因变量与自变量呈非线性关系的话,就需要使用非线性回归进行分析. SPSS中的非线性回归有两个过程可以调用,一 ...

  3. C语言混乱代码大赛

    main() {printf(&unix["\021%six\012\0"], (unix)["have"] + "fun" - 0 ...

  4. vuex是啥

    vuex是一个状态管理工具. vuex store与一个简单的全局变量的区别是: 1.vuex stores 是响应式的,当组件改变state时,它能响应并高效地更新state. 2.state不能被 ...

  5. C#窗体 WinForm 进程,线程

    一.进程 进程是一个具有独立功能的程序关于某个数据集合的一次运行活动. 它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体. Process 类,用来操作进程. 命名空间:using Sys ...

  6. sass学习笔记2

    今天介绍sass在重用代码时最具威力的两个功能.一个是嵌套(Nesting),一个混合(Mixin). 我们在写CSS通过需要多个后代选择器组合到一起才能定位到目标元素上,而这定义过程,此元素的父元素 ...

  7. 《SICP》读后感:关于软件本质的一点思考

    摘要:软件本身不是目的,人类的需求才是目的,而软件只是达到目的的手段. 软件的本质在于控制复杂性,这个复杂性并非来自于计算机,也并非来自于现实世界,而是来自于人类的思维和知识体系. 软件被使用的广泛性 ...

  8. Html5实现移动端、PC端 刮刮卡效果

    刚从南方回来就分了一个刮刮卡效果的页面,特么的我在烦恼怎么用H5去实现这个效果呢,好不容易写出来了,产品居然说:“既然你可以写出来这个效果那当然好了,开始我只是打算让你实现点击就出现呢!”… … 尼玛 ...

  9. iOS开发UI篇—多控制器和导航控制器简单介绍

    iOS开发UI篇—多控制器和导航控制器简单介绍 一.多控制器 一个iOS的app很少只由一个控制器组成,除非这个app极其简单.当app中有多个控制器的时候,我们就需要对这些控制器进行管理 有多个vi ...

  10. .htaccess更改目录下的默认主页

    我们知道apache的配置文件httpd.conf可以配置网站目录的默认主页.配置文件该部分定义如下: #DirectoryIndex: sets the file that Apache will ...