数组

数组的声明方式: 类型[] 变量;
数组的创建方式: new 类型[数组长度]

数组的简单声明并且赋值

// 声明一个数组,它的长度是3
String[] arrs= new String[3];
arrs[0]="张三";
arrs[1]="李四"; // 访问数组的值
System.out.println(arrs[0]); 输出的是张三 // 获取当前数组的长度 使用length方法
arrs.length

字符串

字符串里面就是一个一个的字符;

字符又是一个一个的字节

字符串里面就是一个一个的字符;

// 字符串是由一个一个的字节组成的
char[] c= {'a','中','国'};
String str = new String(c);
System.out.println(str); // 输出的是:a中国
byte[] b = {-28,-72,-83,-27,-101,-67};
String str1 = new String(b,"UTF-8");
System.out.println(str1); // 输出的是:中国

如何表示双引号 -需要使用转义 \

String str1 = "\""
System.out.println(str1); // 输出的是:"

字符串拼接

字符串拼接有两种方式
第一种是:使用 + 表示连接或者相加; 左右两侧都是数字就是相加
第二中是: s.concat(s2)

判断字符串是否相等 equals

// 判断两个字符串内容是否相等
String s1 = "a";
String s2="a";
System.out.println(s1.equals(s2)); // 输出true

判断两个字符串内容是否相等忽略大小写

// 判断两个字符串内容是否相等忽略大小写
String s1 = "a";
String s2="A";
System.out.println(s1.equalsIgnoreCase(s2)); // 输出true

字符串的比较

i = 正数; a>b
i = 负数; a<b
i=0; a=b

字符串比较大小实际上是比较:ASCII编码

String a= "A";
String b = "B"; int c = a.compareTo(b);
System.out.println(c); // -1 说明 a < b
String a= "2";
String b = "3"; int c = a.compareTo(b);
System.out.println(c); // -1 说明 a < b

字符串是怎么比较的

byte b1 = (byte)'A'; // 将字符串类型强制转化为byte类型
byte b2 =(byte)'B';
System.out.println("A:"+ b1); // 65
System.out.println("B:"+ b2); // 66 int i = b1.compareTo(b2); // 这个结果整好是他们之间的差值 65-66
System.out.println(i); // 输出-1

字符串的截取 - substring[)

String str="hello";
// [)包含起始位,不包含结束位
System.out.println(str.substring(0,3)); 如果只传递一个参数,表示从指定的位置开始,一直到字符串结束
// 如果只有一个参数,表示从指定位置一直到字符串末结束
System.out.println(str.substring(3)); // lo

将字符串变为数组 - split

String str="hello Word";
// 将字符串变为数组;以空格的形式切割
String[] arrs = str.split(" ");
System.out.println(arrs.length); // 2
System.out.println(arrs[0]); // hello
System.out.println(arrs[1]); // Word

循环数组的另外一种方式 for(String 每一项:被循环的数组){}

String[] arrs = new String[2];
arrs[0]="hello";
arrs[1]="Word";
for(String cont:arrs){
System.out.println(cont);
}

去除字符串首尾的空格 trim

// 去除字符串首尾的空格
String str=" helloWord ";
System.out.println(str.trim());

字符串替换

String str="hello python";
System.out.println(str.replace("python","PHP")); // hello PHP 如果一个字符串中有两处python;也会将第二处替换
String str="hello python python";
System.out.println(str.replace("python","PHP")); // hello PHP PHP

按照指定的规则进行替换

String str="hello python 世界";
System.out.println(str.replaceAll("hello|python","你好"));
会将hello或者python都替换成为 你好; 最后输出的是:你好 你好 世界

将大写转化为小写

String str="HELLO";
System.out.println(str.toLowerCase()); // hello

将小写转化为大写

String str="hello";
System.out.println(str.toUpperCase());

字符串查找- charAt

// charAt可以根据索引,查找字符串中指定位置的字符
String str="hello";
System.out.println(str.charAt(1)); // 输出e

字符串查找- indexOf

用于获取数据在字符串中第1次出现的位置
String str="hello World";
System.out.println(str.indexOf("hello")); // 0 String str1="World hello World";
System.out.println(str1.indexOf("World")); // 0 String str2="hello World";
System.out.println(str2.indexOf("World")); // 6

字符串查找 - lastIndexOf

lastIndexOf:用于获取数据在字符串最后一次出现的位置
String str1="henihe";
System.out.println(str1.lastIndexOf("e"));

字符串包含 - contains是否包含指定的字符

String str1="hello World";
System.out.println(str1.contains("World")); // true String str2="hello World";
System.out.println(str2.contains("World-")); // false

字符串-startsWith是否以指定字符开头

String str1="hello World";
System.out.println(str1.startsWith("hello")); //true
String str1="hello World";
System.out.println(str1.startsWith("hello2")); // false

字符串-endsWith是否以指定字符结尾

String str1="hello World";
System.out.println(str1.endsWith("hello2")); // false
String str1="hello World";
System.out.println(str1.endsWith("ld")); // true

判断字符串是否是空字符

String str1="hello World";
System.out.println(str1.isEmpty()); // false
String str1=" ";
System.out.println(str1.isEmpty()); // false
ps:空格其实是一个特殊的字符。不为空。
String str1="";
System.out.println(str1.isEmpty()); // true

这样的拼接效率是非常的低的

String s="";
for(int i=0;i<100;i++){
s=s+i;
}
System.out.println(s);
ps:这样字符串的拼接效率是非常的低的;
java作为服务端的语言;这样肯定是不行的;
那么我们怎么来处理这个问题呢?
StringBuilder 提升效率
StringBuilder s = new StringBuilder();
for(int i=0;i<1000;i++){
// 添加到这个s变量中;不会做加法运算的哈
s.append(i);
}
// 转化为字符串
System.out.println(s.toString());
StringBuilder 的几个常见方法
StringBuilder s = new StringBuilder();
s.append("abc"); // 添加
System.out.println(s.toString()); // 输出字符串:abc
System.out.println(s.length()); // 长度3
System.out.println(s.reverse()); // 翻转操作:输出cba
System.out.println(s.insert(1, "1")); // 插入:在字符串cba下标为1的位置插入1;输出 c1ba

java中数组和字符串的更多相关文章

  1. java中数组、集合、字符串之间的转换,以及用加强for循环遍历

    java中数组.集合.字符串之间的转换,以及用加强for循环遍历: @Test public void testDemo5() { ArrayList<String> list = new ...

  2. Java中数组的特性

    转载:http://blog.csdn.net/zhangjg_blog/article/details/16116613 数组是基本上所有语言都会有的一种数据类型,它表示一组相同类型的数据的集合,具 ...

  3. java中常用的字符串的截取方法

    java中常用的字符串的截取方法   1.length() 字符串的长度 例:char chars[]={'a','b'.'c'}; String s=new String(chars); int l ...

  4. JAVA中用于处理字符串的“三兄弟”

    JAVA中用于处理字符串常用的有三个类:java.lang.String.java.lang.StringBuffer.java.lang.StringBuilder,这三者的共同之处都是final类 ...

  5. Java中数组的插入,删除,扩张

    Java中数组是不可变的,但是可以通过本地的arraycop来进行数组的插入,删除,扩张.实际上数组是没变的,只是把原来的数组拷贝到了另一个数组,看起来像是改变了. 语法: System.arrayc ...

  6. 【Java面试题】18 java中数组有没有length()方法?string没有lenght()方法?下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d";

    数组没有length()这个方法,有length的属性.String有有length()这个方法. int a[]; a.length;//返回a的长度 String s; s.length();// ...

  7. java中数组有没有length()方法?string没有lenght()方法?

    java中数组有没有length()方法,求数组的长度可以使用数组的length属性. int[] arr={1,2,3,4,5}; int length=arr.length;//求数组的长度 -- ...

  8. 关于Java中数组的简单使用

    关于java中数组的简单使用--继java环境配置后的第二篇学习笔记 近期在学习Java的过程中学到了数组的部分,至于为什么我会到数组才来写这个,主要是数组这一章节的内容感觉还是与之前学的C里面的数组 ...

  9. java中数组的相关知识

      1. 2.数组的命名方法 1)int[]ages=new int[5]; 2) int[]ages; ages=new int[5]; 3)int[]ags={1,2,3,4,5}; 4)int[ ...

  10. 在java 中,数组与 List<T> 类型的相互转换

    在java中,数组与List<T> 之前进行互相转换,转换方法可总结为以下几种: 一. 将 数组转换成List<T> 1. 使用 Collections 的addAll 方法 ...

随机推荐

  1. 卢卡斯定理/Lucas 定理

    卢卡斯定理/Lucas 定理 引入 求 \(C_{n+m}^n \mod p\). \(n,m,p \leq 10^5\). 如果直接用阶乘求,可能在阶乘过程中出现了 \(p\),而最后的结果没有出现 ...

  2. 【Azure 环境】从网络包中分析出TLS加密套件信息

    问题描述 在抓取到网络包之后,如何来获取TLS信息呢?比如使用的是是么加密套件呢? 因为在应用层面,获取的错误信息非常简单: An TLS 1.2 connection request was rec ...

  3. [python] asyncio库常见问题与实践案例

    本文详细介绍了在使用asyncio库编写异步程序时常见的错误和问题,并进一步通过实践案例进行分析和讨论,以便在项目中更有效地应用asyncio库.有关asyncio库的详细介绍,可参考:Python ...

  4. 网站安全锁-SSL证书

    为了安全起见,现在开发微信服务号和IOS客户端等访问服务器端都要求使用https加密传输. SSL证书是数字证书的一种,类似于驾驶证.护照和营业执照的电子副本.因为配置在服务器上,也称为SSL服务器证 ...

  5. Laravel环境搭建之HomeStead

    开发laravel,官方推荐使用HomeStead虚拟环境进行搭建. Linux: 1. 安装virtualbox(https://www.virtualbox.org/) 1)可以找到可供下载的镜像 ...

  6. GObject学习笔记(二)类型创建与注册

    前言 本文可在https://paw5zx.github.io/GObject-tutorial-beginner-02/中阅读,体验更加 在上一节中我们介绍了GObject类型的类和实例变量的创建和 ...

  7. 预热篇2:从RNN到Transformmer

    下面是整理的一个思维导图 2010年Mikolov提出了RNN网络,RNN网络存在长距离依赖(梯度消失),计算效率(RNN 难以并行)两个问题 2017年Transformmer网络结构问世,Tran ...

  8. "一基双台三智" 中电金信智慧监督解决方案构筑国央企风控堡垒

    近年来,国务院国资委先后下发<关于进一步排查中央企业融资性贸易业务风险的通知>.<关于规范中央企业贸易管理严禁各类虚假贸易的通知>等各类监管法规,并在2024年初中央企业工作会 ...

  9. 推荐 groovy 的 sql 模块

    发现 groovy 的 sql 很好用,写下来代码风格和 d2js 很像,唯一的不足是没有 sql{..} 块的设计,但对 Java 程序员来说它已经非常友好了,来自它的网站的一段示例: Now yo ...

  10. 安装Spring源码时报错No such property: values for class: org.gradle.api.internal.tasks.DefaultTas

    IDEA进行项目拉取时:No such property: values for class: org.gradle.api.internal.tasks.DefaultTas 修改spring-be ...