2.1利用字符串API

字符串是Java类型最常用。并且是复合类型

串非常经常用于,其最佳API熟悉文档。

推断串中有没有反复的字符

String s =”abcdebxyz”;

推断当中有没有反复字符

/*推断串中有没有反复的字符
String s ="abcdebxyz";
推断当中有没有反复字符*/

package StringAPI;

public class JudgeRepeatInString {
public static void main(String[] args) {
String s ="abcdex啊yz啊";
boolean judge = false;//推断标记,初始化没有反复

for(int i=0;i<s.length();i++){//首先遍历这个串
char c = s.charAt(i);//得到第i位的字符
if(s.lastIndexOf(c)!=i){//假设串中最后一次出现c表示的字符的位置!=i
judge = true;//有反复
}
}
System.out.println(judge);
}
}
true

 


​ char​



charAt(int index)
          返回指定索引处的 char 值。



​ int​



lastIndexOf(int ch)
          返回指定字符在此字符串中最后一次出现处的索引。


 

移位加密

ASCII码+一个数

 

串的定义是不能被改动的

所谓改动,是新生成一个新的串

假设大量的新生成新的串,对计算机有非常大压力

 

所以考虑把串变成char类型数组。移位加密后,在变成串,就可以。

/*移位加密
ASCII码+一个数

串的定义是不能被改动的
所谓改动,是新生成一个新的串
假设大量的新生成新的串,对计算机有非常大压力

所以考虑把串变成char类型数组,移位加密后,在变成串。就可以。
*/


package StringAPI;

public class MoveSecret {
public static void main(String[] args) {
String s = "Where is my code?中文会非常乱吗?";
char c[] = s.toCharArray();//讲串转为char数组
for(int i=0;i<c.length;i++){
c[i]++;
}

String s2 = new String(c);//讲char数组转回串,String的构造方法。
System.out.println(s2);
}
}
Xifsf!jt!nz!dpef@丮斈伛徉乲吘@



​ char[]​



toCharArray​​()
          将此字符串转换为一个新的字符数组。



String​​​(char[] value)​
          分配一个新的 ​​String​​。使其表示字符数组參数中当前包括的字符序列。



推断

推断一个全路径名是否在c盘且是.ini扩展名。

"c:\\xyz\\bak\\x.ini" 复合标准

"ccc\\ttt\\kk\\ini" 则不是

/*
推断
推断一个全路径名是否在c盘且是.ini扩展名。
"c:\\xyz\\bak\\x.ini" 复合标准
"ccc\\ttt\\kk\\ini" 则不是

*/
package StringAPI;

public class JudgePath {
public static void main(String[] args) {
// String s = "ccc\\ttt\\kk\\ini" ;
String s = "c:\\xyz\\bak\\x.ini";
boolean judge = false;

if (s.startsWith("c:\\") && s.endsWith(".ini")) {//以"c:\\"開始&&以".ini"结束
judge = true;
}
System.out.println(judge);
}
}
true

 


​boolean​



startsWith​​​(String prefix)​
          測试此字符串是否以指定的前缀開始。



​ boolean​



endsWith(String suffix)
          測试此字符串是否以指定的后缀结束。