char < - > String
- char[ ] - --> String
public String(char[ ] value):将字符数组全部转换为字符串
public String(char[ ] value, int offset, int len):将字符数组的部分内容转换为字符串- String ----> char
public char charAt(int index):取得字符串指定索引的字符,从0开始- String ----> char[ ]
public char[ ] toCharArray():将字符串转为字符数组
String str = "hello";
System.out.println(str.charAt(0)); //h
System.out.println(str.charAt(4)); //o
System.out.println(str.charAt(5)); //下标越界,出现java.lang.StringIndexOutOfBoundsException
public class Test{
public static void main(String[] args){
String str = "hello";
//将字符串转为字符数组
char[] data = str.toCharArray();
for(int i = 0; i <data.length; i++){
System.out.print(data[i]);
if(i < data.length-1){
System.out.print(","); //h,e,l,l,o
}
}
System.out.println();
//将字符数组全部转换为字符串
String str1 = new String(data);
System.out.println(str1); //hello
//将字符数组部分转换为字符串
String str2 = new String(data,0,3);
System.out.println(str2); //hel
System.out.println(str2.length()); //3
}
}
public static boolean isNumber(String str){
if(str == null){
return false;
}
if(str == ""){
return false;
}
char[] data = str.toCharArray();
for(int i = 0; i<data.length; i++){
if(data[i] < '0' || data[i] >'9'){
return false;
}
}
return true;
}
字节常用于数据传输以及编码转换的处理之中,在String中提供有对字节的支持。
byte < - > String
- byte[ ] < - > String
public String (byte[ ] value) :将字节数组全部转为字符串
public String (byte[ ] value, int offset, int len) : 将字节数组的部分内容转为字符串- String < - > byte[ ]
public byte[ ] getBytes(): 将字符串转为字节数组
public byte[ ] getBytes(String charset): 将字符串按照指定编码格式转为字节数组。
Linux 默认编码是UTF-8, Windows默认编码是GBK
public class TestString {
public static void main(String[] args) {
String str = "hello world";
//将字符串中每个字符转换为字节,每一个ASCII就是一个字节
//将字符串转换为字节
byte[] bytes = str.getBytes();
for(int i = 0; i < bytes.length; i++){
System.out.print(bytes[i]); //输出字符对应的ASCII码
if (i < bytes.length-1){
System.out.print(",");
}
}
System.out.println();
//将字节准换为字符串
System.out.println(new String(bytes));
System.out.println(new String(bytes,2,5));
}
}
/**
104,101,108,108,111,32,119,111,114,108,100
hello world
llo w
*/
在String中提供了equals()方法,去比较两个字符串的内容(区分大小写)。除此之外,还有以下几个比较的方法。
- public boolean equals(Object anObject) - 区分大小写,判断字符串是否相等。可以传任何包装类型
- public boolean equalsIgnoreCase(String anoterString) - 不区分大小写,只能传一个字符串
- public int compareTo(String anotherString) - 比较两个字符串大小关系
1)相等: 返回0
2)小于: 返回小于0的数
3)大于: 返回大于0的数
public class TestString {
public static void main(String[] args) {
String str = "hello";
String str1 = "Hello";
System.out.println(str.equals(str1)); //false
System.out.println(str.equalsIgnoreCase(str1)); //true
System.out.println("a".compareTo("A")); //32
System.out.println("A".compareTo("A")); //0
System.out.println("B".compareTo("A")); //1
System.out.println("AB".compareTo("AD")); //-2
System.out.println("强".compareTo("李")); //-2068
}
}
附加: String中的equals()方法是覆写了Object的equals方法
public class TestString {
public static void main(String[] args) {
String str = "hello,world";
//判断一个字符串是否存在
System.out.println(str.contains("hello")); //true
System.out.println(str.contains("java")); //false
//查找指定字符串的索引位置
System.out.println(str.indexOf("e")); //1
System.out.println(str.indexOf("world")); //6
System.out.println(str.indexOf("l")); //2 返回第一个字母l出现的位置
System.out.println(str.indexOf("z")); //-1
//查找指定索引位置的字符
System.out.println(str.charAt(6)); //w
}
}
public class TestString {
public static void main(String[] args) {
String filename = "Test.java";
if(filename.endsWith(".java")){
System.out.println(filename+"是.java文件");
}else{
System.out.println(filename+"不是.java文件");
}
String url = "http://www.baidu.com";
boolean src = url.startsWith("http") || url.startsWith("https");
if(src){
System.out.println(url + "是网址");
}else{
System.out.println("不是网址");
}
}
}
/**
Test.java是.java文件
http://www.baidu.com是网址
*/
public class TestString {
public static void main(String[] args) {
String str = "helloworld";
System.out.println(str.replaceAll("l","-"));
System.out.println(str.replaceFirst("l","-"));
System.out.println(str.replaceAll("hello","?"));
}
}
/**
he--owor-d
he-loworld
?world
*/
public class TestString {
public static void main(String[] args) {
String str = "hello world hello java";
//全部拆分
String[] result = str.split(" ");
for(String s:result){
System.out.print(s +",");
}
System.out.println();
//部分拆分,拆分为两个字符串
String[] result1 = str.split(" ", 2);
for (String s:result1){
System.out.print(s+",");
}
}
}
/**
hello,world,hello,java,
hello,world hello java,
*/
举例:拆分IP
public class TestString {
public static void main(String[] args) {
String str = "192.168.1.1";
String[] result = str.split("\\.");
for(String s:result){
System.out.println(s);
}
}
}
public class TestString {
public static void main(String[] args) {
String str = "helloworld";
System.out.println(str.substring(5));
System.out.println(str.substring(0,5));
}
}
public class TestString {
public static void main(String[] args) {
System.out.println(firstUpper("hello"));
System.out.println(firstUpper(""));
System.out.println(firstUpper("a"));
System.out.println(firstUpper(null));
}
private static String firstUpper(String str) {
if (str== null || "".equals(str)){
return str;
}
if(str.length()>1){
return str.substring(0,1).toUpperCase()+str.substring(1);
}
return str.toUpperCase();
}
}
/**
Hello
A
null
*/