1.概述:java.util.String.包中。使用的时候不需要导包
2.Java 程序中的所有字符串文字.如(sdsdsffsd)。都被视为此类的对象
3.字符串不可改变,他们的值在创建后不能进行改变.
1.直接赋值;
2.使用new进行创建
public class hello {
public static void main(String[] avgs) {
//直接赋值
String s="我是小明";
System.out.println("使用直接赋值的方式打印出来的数组是:"+s);
//设置为空的字符串
String s2=new String();
System.out.println("1"+s2+"2");
//设置有参数的字符串
String s3=new String("hello world");
System.out.println("脱裤子放屁赋值字符串:"+s3);
//通过字符数组进行进行创建一个新的字符串对象
char []arr=new char[]{'a','b','c'}; //主要运用与修改
String s4=new String(arr);
System.out.println(s4);
//传递以恶搞字节数组,根据字节数组的内存在创建一个新的字符串的对象
byte []s5=new byte[]{97,98,99,100}; //相当与ascll码
String s6=new String(s5);
System.out.println(s6);
}
}
当使用双引号直接赋值时,系统会检查该字符串在串池中是否存在.
不存在:创建新的
存在:复用
==号的基本原理:
A:基本数据类型:
> int a=10; int b=20; System.out.println(a==b); / /fslae 比较的时数值
B:引用数据类型:
两个new出来的 (假)
String s1=new String("abc");
String s2=new String("abc");
System.out.println(s1==s2); //false 比较的是地址值,不是数值.
直接赋值出来的 (真)
String s1=”abc“;
String s2="abc";
System.out.println(s1==s2); //true 会调用复用
直接赋值和new出来的比较 (假)
String s1=”abc“;
String s2=new String("abc");
System.out.println(s1==s2); //false ,放的地址都不一样
两个键盘录入的 (假)
import java.util.*;
public class hello {
public static void main(String[] avgs) {
Scanner sc=new Scanner(System.in);
String s=sc.next();
String s1=sc.next();
System.out.println(s==s1);
}
}
boolean 数据类型 = 字符串名. eauals(s2); //这个区分大小写
两个直接赋值的字符串 (真)
public class hello {
public static void main(String[] avgs) {
String s="abcd123";
String s1="abcd123";
String s2="ABCD123";
boolean result =s.equals(s1); //不可以忽略大小写
System.out.println(result);
boolean flag =s.equals(s2);
System.out.println(flag);
boolean flag1=s.equalsIgnoreCase(s2); //可以忽略大小写
System.out.println(flag1);
}
}
键盘录入的字符串是new出来的和直接赋值的 (真)
import java.util.*;
public class hello {
public static void main(String[] avgs) {
Scanner sc=new Scanner(System.in);
String s="abc";
String s1=sc.next();
boolean flag=s.equals(s1);
System.out.println(flag);
}
}
两个键盘输入的进行比较 (true)
import java.util.*;
public class hello {
public static void main(String[] avgs) {
Scanner sc=new Scanner(System.in);
String s=sc.next();
String s1=sc.next();
boolean flag=s.equals(s1);
System.out.println(flag);
}
}
密码用户登入信息
import java.util.*;
public class hello {
public static void main(String[] avgs) {
Scanner sc=new Scanner(System.in);
String username="liming";
String userPassword="121788";
int count=3;
while (count>0) {
count--;
System.out.println("请输入您的用户名:");
String username1=sc.next();
System.out.println("请输入您的用户密码:");
String userpassword=sc.next();
if(username1.equals(username)&&userpassword.equals(userPassword)) {
System.out.println("登入成功!!!!!");
break;
}
else {
System.out.println("登入失败,您还有"+(count)+"次机会");
}
}
}
}
Scanner sc=new Scanner(Sytsem.in);
String s;
s=sc.next();
for(int i=0;i<s.length();i++)
{
s.charAt(i);
}
求小写字母,大写字母,数字的个数
import java.util.*;
public class hello {
public static void main(String[] avgs) {
System.out.println("请输入您的字符串");
Scanner sc=new Scanner(System.in);
String s;
s=sc.next();
int small=0;
int big=0;
int math=0;
System.out.println(s);
for(int i=0;i<s.length();i++){
if(s.charAt(i)>='a'&&s.charAt(i)<='z')
{
small++;
}
if(s.charAt(i)>='A'&&s.charAt(i)<='Z')
{
big++;
}
if(s.charAt(i)>'0'&&s.charAt(i)<'9')
{
math++;
}
}
System.out.println("数字有:"+math);
System.out.println("小写数量为:"+small);
System.out.println("大写数字为:"+big);
}
}
2.基本操作和算法:
import java.util.*;
public class hello {
public static void main(String[] avgs) {
int arr[]=new int[3];
toString(arr);
}
public static void toString(int []arr)
{
//长度为0的意思是 int []a=new int[0]; 数组为空的意思是指: int []a=new int[]{};
if(arr==null)//判断数组是否为空
{
System.out.println(""); //返回一个长度为0的"“
}
if(arr.length==0)//判断数组的长度是否为0
{
System.out.println("[]");
}
System.out.print("[");
for(int i=0;i<arr.length;i++)
{
if(i<arr.length-1){
System.out.print(arr[i]+",");
}
else {
System.out.print(arr[i]);
}
}
System.out.print("]");
}
}
基本格式:
s.substring(a,b); //截取字符串s从a到b,但包括a不包括b;
s.substring(c); //截取从c索引开始到末尾的所有元素
import java.sql.SQLOutput;
import java.util.*;
import java.awt.*;
public class hello {
public static void main(String []avgs) {
String s="16639058447";
String s1=s.substring(0,3);
String s2=s.substring(7);
String result=s1+"****"+s2;
System.out.println(result);
}
}
定义:
SringBuilder sb=new StringBulider()
添加字符串:
sb.append(a);
获取长度:
sb.length()
转换成字符串
sb.toString();
倒序
sb.reveser();
展示:
public class SquenceListTest {
public static void main(String []avgs) {
StringBuilder sb=new StringBuilder("傻瓜"); //创建对象
sb.append(1); //进行添加
sb.append(1.2);
sb.append(true);
sb.reverse(); //进行翻转输出
System.out.println(sb);
int length=sb.length(); //计算合并后的长度
System.out.println(length);
String s=sb.toString(); //把容器转换成字符串
System.out.println(s);
}
}
public class SquenceListTest {
public static void main(String []avgs) {
int []arr=new int[]{1,2,3};
String s=arrTo(arr);
System.out.println(s);
}
public static String arrTo(int []arr){
StringBuilder sb=new StringBuilder();
System.out.print("[");
for(int i=0;i<arr.length;i++){
if(i==arr.length-1){
sb.append(arr[i]).append("]");
}else{
sb.append(arr[i]).append(",");
}
}
String s=sb.toString();
return s;
}
}
基本格式:
StringJoiner(间隔符号)
代码展示:
StringJoiner(“间隔符号”,"开始符号","结束符号")
import java.sql.SQLOutput;
import java.util.*;
import java.awt.*;
public class hello {
public static void main(String []avgs) {
StringJoiner sj=new StringJoiner(",","[","]");
sj.add("aaa").add("bbb").add("ccc");
System.out.println(sj);
}
}
添加(只能是字符串)
sj.add();
代码展示:
import java.sql.SQLOutput;
import java.util.*;
import java.awt.*;
public class hello {
public static void main(String []avgs) {
StringJoiner sj=new StringJoiner("---");
sj.add("aaa").add("bbb").add("ccc");
System.out.println(sj);
}
}
长度:
sj.length();
import java.sql.SQLOutput;
import java.util.*;
import java.awt.*;
public class hello {
public static void main(String []avgs) {
StringJoiner sj=new StringJoiner(",","[","]");
sj.add("aaa").add("bbb").add("ccc");
System.out.println(sj);
System.out.println(sj.length());
}
}
转换成字符串:
import java.sql.SQLOutput;
import java.util.*;
import java.awt.*;
public class hello {
public static void main(String []avgs) {
StringJoiner sj=new StringJoiner(",","[","]");
sj.add("aaa").add("bbb").add("ccc");
System.out.println(sj);
System.out.println(sj.length());
String str=sj.toString();
System.out.println(str);
}
}
基本格式:
s.tocharArray();
代码展示:
import java.sql.SQLOutput;
import java.util.*;
import java.awt.*;
public class hello {
public static void main(String []avgs) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
char []arr=str.toCharArray();
int c=arr[0]-32;
System.out.println((char)c);
}
}
假如说一个字符串为"abcd",进行旋转一次变成dabc,第二次cdab…
判断是否这两个字符串是否会在n此旋转后回想等,如果相等,那么就返回true,否则返回else.
import java.sql.SQLOutput;
import java.util.*;
import java.awt.*;
public class hello {
public static void main(String []avgs) {
Scanner sc=new Scanner(System.in);
String str=sc.next();
System.out.println(JudgeEqual(str));
}
public static boolean JudgeEqual(String s){ //判断是否相等
StringBuilder sb=new StringBuilder();
sb.append(s);
sb.reverse();
String st=sb.toString();
for(int i=0;i<s.length();i++){
String str=reverse(s);
if(str.equals(st)){
return true;
}
}
return false;
}
public static String reverse(String s){ //进行截取字符
String start=s.substring(0,1);
String end=s.substring(1);
String str=end+start;
return str;
}
}