首页 > 编程语言 >java中数组和字符串

java中数组和字符串

时间:2024-01-14 22:23:15浏览次数:23  
标签:java String System println 数组 字符串 hello out

数组

数组的声明方式: 类型[] 变量;
数组的创建方式: 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,String,System,println,数组,字符串,hello,out
From: https://www.cnblogs.com/ishoulgodo/p/17964296

相关文章

  • 超级简单的后缀数组(SA)笔记!!
    超级简单的后缀数组(SA)!!(未完)前言这里选择当一手标题党。由于刚学完这个字符串算法,本人字符串算法又比较薄弱,好不容易这一次在晚修看各种资料看得七七八八,决定趁脑子清醒的时候记录下来。免得自己不久后忘了后又要痛苦地再看各种资料。希望这篇博客能帮到你。前置知识:RMQ问题......
  • 1.Java基础
    1.1JAVA中的几种基本数据类型是什么,各自占用多少字节。Java中有八种基本数据类型,分别是byte(1bit)、boolean(不占用)char(2bit)、short(2bit)、int(4bit)、long(8bit)、float(4bit)、double(8bit)。1.2String类能被继承吗,为什么。String类不能被继承,因为其被final关键字声明,不允许被......
  • 用数组作为函数参数来实现冒号排序函数
    define_CRT_SECUNRE_NO_WARNINGS1include<stdio.h>voidbubble_sort(intarr[],intsz){inti=0;for(i=0;i<sz;i++)//冒泡的次数{intflag=1;//假设这一趟排序已经有序intj=0;for(j=0;j<sz-1-i;j++){if(arr[j]>arr[j+1]){inttmp......
  • 「杂谈」字符串 Hash
    我们常用的字符串Hash形如:\[f(s)=\sum_{i=1}^{n}s_i\timesb^{n-i}\bmodp\]但是经常有人写出不正确的Hash。举例说明,以下Hash是不正确的:自然溢出Hash。固定底数和模数,模数是\(2^{64}\)级别的Hash。固定底数和模数,模数数\(2^{32}\)级别的双Hash。具......
  • 学习JavaDay02
    常用的DOS命令盘符切换E:英文冒号查看当前目录下的所有文件dir切换目录cdchangedirectorycd..清理屏幕cls查看电脑IPipconfig打开应用calcmspaintnotepad文件操作md目录名rd目录名cd>文件名del文件名HelloWorld新建文件夹,存放代码新建一个Java文件......
  • 学习Java笔记 - Day2
    Java特性优势简单性:基于C,纯净版的C++面向对象:一切皆对象可移植性:Writeonce,runanywhere-跨平台高性能:及时编译,效率分布式:为网络分布式环境设计,可处理TCP/IP协议,通过URL,访问网络资源,相当于本地资源,简单。支持远程的方法调用。动态性:反射机制,有了动态性。多线程:看视频,......
  • P52 数组中出现次数超过一半的数字
    题目链接:方法一:若数组中有数字的出现次数超过数组长度的一半(绝对众数),则将该数组排序后中间位置的数一定就是该数。classSolution{public:intmoreThanHalfNum_Solution(vector<int>&nums){sort(nums.begin(),nums.end());intn=nums.size();......
  • [JAVA] Java泛型实践
    Java泛型实践泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类......
  • (△△△)开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动
    描述开发一个坐标计算工具,A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。输入:合法坐标为A(或者D或者W或者S)+数字(两位以内)坐标之间以;分隔。非法坐标点需要进行丢弃。如AA10;......
  • string 字符串用法C++
    substr() c_str() size()/length()  empty() clear() #include<iostream>#include<cstring>#include<cstdio>#include<algorithm>#include<vector>usingnamespacestd;intmain(){stringa="abc";......