Java探索之string字符串的應(yīng)用代碼示例
String類中提供了豐富的用于操作字符串的方法。
int indexOf(String str)
該方法用于返回當(dāng)給定字符串在當(dāng)前字符串中的位置,若當(dāng)前字符串不包含給定字符串則返回-1。
重載的方法
int indexOf(String str,int formIndex),從指定下標(biāo)處(包含)查詢子串,返回返回當(dāng)給定字符串在當(dāng)前字符串中的位置,若當(dāng)前字符串不包含給定字符串則返回-1。
用自己的算法實(shí)現(xiàn)startsWith和endsWith功能。
package com.hz.practice;
/**
* 1. 用自己的算法實(shí)現(xiàn)startsWith和endsWith功能。
* @author ztw
*
*/
public class Practice01 {
public static void main(String[] args) {
String str = "qwewrewr";
// boolean temp = str.endsWith("r");
// System.out.println(temp);
/*
* startsWith
*/
char[] arr = str.toCharArray();
char c = 'r';
if(arr[0]==c){
System.out.println("true");
}else{
System.out.println("false");
}
/*
* endsWith
*/
if(arr[arr.length-1]==c){
System.out.println("true");
}else{
System.out.println("false");
}
}
}
輸出結(jié)果:
false true
2.采用字符的移位方式實(shí)現(xiàn)字符文本加密解密。
package com.hz.practice;
import java.util.Scanner;
/**
* 2.采用字符的移位方式實(shí)現(xiàn)字符文本加密解密。
* @author ztw
*
*/
public class Practice02 {
public static void main(String[] args) {
System.out.println("請(qǐng)輸入一個(gè)字符串");
Scanner sc =new Scanner(System.in);
String str1 = new String();
str1=sc.nextLine();
System.out.println(str1.replaceAll("a", "1.")
.replaceAll("b", "2.").replaceAll("c", "3.")
.replaceAll("d", "4.").replaceAll("e", "5.")
.replaceAll("f", "6.").replaceAll("g", "7.")
.replaceAll("h", "8.").replaceAll("i", "9.")
.replaceAll("j", "10.").replaceAll("k", "11.")
.replaceAll("l", "12.").replaceAll("m", "13.")
.replaceAll("n", "14.").replaceAll("o", "15.")
.replaceAll("p", "16.").replaceAll("q", "17.")
.replaceAll("r", "18.").replaceAll("s", "19.")
.replaceAll("t", "20.").replaceAll("u", "21.")
.replaceAll("v", "22.").replaceAll("w", "23.")
.replaceAll("x", "24.").replaceAll("y", "25.")
.replaceAll("z", "26."));
}
}
輸出結(jié)果:
請(qǐng)輸入一個(gè)字符串 asdsddffg 1.19.4.19.4.4.6.6.7.
3.驗(yàn)證是隨機(jī)生成4位驗(yàn)證碼,由用戶輸入并否輸入正確, 如果輸入錯(cuò)誤就生成新的驗(yàn)證碼讓用戶重新輸入,最多輸入5次!
package com.hz.practice;
import java.util.Random;
import java.util.Scanner;
/**
* 3.驗(yàn)證是隨機(jī)生成4位驗(yàn)證碼,由用戶輸入并否輸入正確,
* 如果輸入錯(cuò)誤就生成新的驗(yàn)證碼讓用戶重新輸入,最多輸入5次
* @author ztw
*
*/
public class Practice03 {
public static void main(String[] args) {
String str="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
char[]arr=new char[4];//定義一個(gè)長(zhǎng)度是4的char型數(shù)組
Random sj=new Random();
System.out.println("驗(yàn)證碼是:");
for(int i=0;i<4;i++)
{
arr[i]=str.charAt(sj.nextInt(61));//從str中隨機(jī)截取4個(gè)單個(gè)字符并賦值給arr這個(gè)數(shù)組存放
}
System.out.println(arr);
Scanner sc=new Scanner(System.in);
System.out.println("請(qǐng)輸入驗(yàn)證碼");
String a=new String(arr);//把數(shù)組轉(zhuǎn)換成字符串
//定義輸入次數(shù)
for(int j=0;j<5;j++)
{
if(sc.nextLine().equals(a))
{
System.out.println("驗(yàn)證碼輸入正確");
}
else
{
System.out.println("驗(yàn)證碼輸入有誤,請(qǐng)重新輸入");
if(j<=3)
{
System.out.print("請(qǐng)輸入驗(yàn)證碼");
for(int i=0;i<4;i++)
{
arr[i]=str.charAt(sj.nextInt(61));//從str中隨機(jī)截取4個(gè)單個(gè)字符并賦值給arr這個(gè)數(shù)組存放
}
System.out.println(arr);
a=new String (arr);
}
else
{
System.out.println("輸入有誤,對(duì)不起,5次機(jī)會(huì)已用完");
}
}
}
}
}
輸出結(jié)果:
驗(yàn)證碼是: AVA8 請(qǐng)輸入驗(yàn)證碼 AVA8 驗(yàn)證碼輸入正確
package com.hz.practice;
/**
* 4.獲取一個(gè)字符串在另一個(gè)字符串中出現(xiàn)的次數(shù)
思路:
1.定義一個(gè)計(jì)數(shù)器。
2.獲取子串第一次出現(xiàn)的位置
3.從第一次出現(xiàn)的位置后剩余的字符串中繼續(xù)獲取子串出現(xiàn)的位置,每獲取一次計(jì)數(shù)器加1
4,當(dāng)獲取不到時(shí),計(jì)數(shù)完成
* @author ztw
*
*/
public class Practice04 {
public static void main(String[] args) {
String str1 = "asdasdas";
String str2 = "as";
//1.定義一個(gè)計(jì)數(shù)器。
int total = 0;
for (String temp = str1; temp!=null &&
temp.length()>=str2.length();) {
//2.獲取子串第一次出現(xiàn)的位置
if(temp.indexOf(str2) == 0){
//3.從第一次出現(xiàn)的位置后剩余的字符串中繼續(xù)獲取子串出現(xiàn)的位置,每獲取一次計(jì)數(shù)器加1
total ++;
}
temp = temp.substring(1);
System.out.print(temp+", ");
}
//4,當(dāng)獲取不到時(shí),計(jì)數(shù)完成
System.out.println("計(jì)數(shù)完成:"+total);
}
}
輸出結(jié)果:
sdasdas, dasdas, asdas, sdas, das, as, s, 計(jì)數(shù)完成:3
package com.hz.practice;
/**
* 5.獲取兩個(gè)子串中最大相同子串
思路:
1.將短的哪個(gè)子串按照長(zhǎng)度遞減的方式獲取到
2.將每次獲取到的子串去長(zhǎng)串中判斷是否包含,如果包含,已經(jīng)找到
* @author ztw
*
*/
public class Practice05 {
public static String getMaxSubString(String s1,String s2) {
String max = "",min = "";
max = (s1.length()>s2.length())?s1: s2;
min = (max==s1)?s2: s1;
// sop("max="+max+"...min="+min);
for(int x=0; x<min.length(); x++)
{
for(int y=0,z=min.length()-x; z!=min.length()+1; y++,z++)
{
String temp = min.substring(y,z);
sop(temp);
if(max.contains(temp))//if(s1.indexOf(temp)!=-1)
return temp;
}
}
return "";
}
public static void main(String[] args)
{
String s1 = "ab";
String s2 = "cvhellobnm";
sop(getMaxSubString(s2,s1));
}
public static void sop(String str)
{
System.out.print(str+", ");
}
}
輸出結(jié)果:
ab, a, b, b,
package com.hz.practice;
import java.util.Scanner;
/**
* 6、寫一個(gè)方法判斷一個(gè)字符串是否對(duì)稱
* @author ztw
*
*/
public class Practice06 {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
String str = input.next();//接收任意字符串
isOk1(str);
}
/**
* 判斷字符串是否對(duì)稱的方法(一)
* 通過(guò)取取索引對(duì)應(yīng)值來(lái)進(jìn)行一一比對(duì)
* @param str
*/
public static void isOk1(String str){
boolean result = true;
int count =(str.length()-1)/2;
for (int x=0;x<=count;x++ ){
if(str.charAt(x)!=str.charAt(str.length()-1-x)){
result = false;
break;
}
}
if(!result)
System.out.println("該字符串是不對(duì)稱的");
else
System.out.println("該字符串是對(duì)稱的");
}
/*
* public static void main(String[] args){
Scanner input = new Scanner(System.in);
String str = input.next();//接收任意字符串
if (isOk2(str)==true) {
System.out.println("真,對(duì)稱!");
}else{
System.out.println("假,不對(duì)稱!");
}
}
/**
* 方法二
* 通過(guò)String加強(qiáng)類中的取反方法reverse獲取其逆向值
* 再與原字符串相比是否相等!
* 等于則返回TRUE,否則FALSE
* @param str
* @return
*/
/*
public static boolean isOk2(String str){
StringBuffer sb = new StringBuffer(str);
String str2 = sb.reverse().toString();
return str.equals(str2);
}
*/
}
輸出結(jié)果:
asdsa 該字符串是對(duì)稱的
package com.hz.practice;
/**
*
9、編寫一個(gè)程序,將下面的一段文本中的各個(gè)單詞的字母順序翻轉(zhuǎn),
“To be or not to be",將變成"oT eb ro ton ot eb."。
* @author ztw
*
*/
public class Practice09 {
public static void main(String[] args) {
String str = "To be or not to be";
String[] str2 = str.split(" ");
for (int i = 0; i < str2.length; i++) {
char[] ci = str2[i].toCharArray();
System.out.print(" ");
for (int j = ci.length-1; j >= 0 ; j--) {
System.out.print(ci[j]);
}
}
}
}
package com.hz.practice;
/**
* 10、已知字符串:"this is a test of java".
按要求執(zhí)行以下操作:
(1) 統(tǒng)計(jì)該字符串中字母s出現(xiàn)的次數(shù)
(2) 取出子字符串"test"
(3) 用多種方式將本字符串復(fù)制到一個(gè)字符數(shù)組Char[] str中.
(4) 將字符串中每個(gè)單詞的第一個(gè)字母變成大寫, 輸出到控制臺(tái)。
(5) 用兩種方式實(shí)現(xiàn)該字符串的倒敘輸出。(用StringBuffer和for循環(huán)方式分別實(shí)現(xiàn))
(6) 將本字符串轉(zhuǎn)換成一個(gè)字符串?dāng)?shù)組,要求每個(gè)數(shù)組元素都是一個(gè)有意義的額英文單詞,并輸出到控制臺(tái)
* @author ztw
*
*/
public class Practice10 {
public static void main(String[] args) {
String str = "this is a test of java";
// (1) 統(tǒng)計(jì)該字符串中字母s出現(xiàn)的次數(shù)
int count = 0;
for (int i = 0; i < str.length(); i++) {
if(str.charAt(i)=='s'){
count++;
}
}
System.out.println("字符串中字母s出現(xiàn)的次數(shù):"+count);
// (2) 取出子字符串"test"
String str2 = (String) str.subSequence(10, 14);
System.out.println(str2);
// (3) 用多種方式將本字符串復(fù)制到一個(gè)字符數(shù)組Char[] str中.
char[] c = str.toCharArray();
System.out.println(c);
for (int i = 0; i < c.length; i++) {
System.out.print(c[i]);
}
System.out.println();
// (4) 將字符串中每個(gè)單詞的第一個(gè)字母變成大寫, 輸出到控制臺(tái)。
str=str.toLowerCase();
String[] tt=str.split(" ");
System.out.println(tt.length);
for(int i=0;i<tt.length;i++)
{
//加個(gè)判斷,長(zhǎng)度大于0的
if(tt[i].length()>0){
System.out.print(String.valueOf(tt[i].charAt(0)).toUpperCase());
System.out.print(tt[i].substring(1)+" ");
}
}
System.out.println();
// (5) 用兩種方式實(shí)現(xiàn)該字符串的倒敘輸出。(用StringBuffer和for循環(huán)方式分別實(shí)現(xiàn))
StringBuffer sb = new StringBuffer(str);
System.out.println(sb.reverse().toString());
char[] c3 = str.toCharArray();
for (int i = c3.length-1; i >= 0 ; i--) {
System.out.print(c3[i]);
}
System.out.println();
// (6) 將本字符串轉(zhuǎn)換成一個(gè)字符串?dāng)?shù)組,要求每個(gè)數(shù)組元素都是一個(gè)有意義的額英文單詞,并輸出到控制臺(tái)
String[] str5=str.split(" ");
for (int i = 0; i < str5.length; i++) {
System.out.print(str5[i]+", ");
}
}
}
輸出結(jié)果:
字符串中字母s出現(xiàn)的次數(shù):3 test this is a test of java this is a test of java 6 This Is A Test Of Java avaj fo tset a si siht avaj fo tset a si siht this, is, a, test, of, java,
總結(jié)
以上就是本文關(guān)于Java探索之string字符串的應(yīng)用代碼示例的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:淺談Java編程ToString()方法重寫的意義、java tostring方法重寫代碼示例等,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
相關(guān)文章
Java 采用反射獲取class屬性值的實(shí)現(xiàn)代碼
以下是對(duì)在Java中采用反射獲取class屬性值的實(shí)現(xiàn)代碼進(jìn)行了分析介紹,需要的朋友可以過(guò)來(lái)參考下2013-08-08
Java解析xml文件遇到特殊符號(hào)異常的情況(處理方案)
這篇文章主要介紹了Java解析xml文件遇到特殊符號(hào)&會(huì)出現(xiàn)異常的解決方案,實(shí)現(xiàn)思路很簡(jiǎn)單通過(guò)在讀取xml文件使用SAX解析前讀取reader,具體實(shí)現(xiàn)方法及示例代碼跟隨小編一起看看吧2021-05-05
spring aop實(shí)現(xiàn)用戶權(quán)限管理的示例
本篇文章主要介紹了spring aop實(shí)現(xiàn)用戶權(quán)限管理的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
java實(shí)現(xiàn)小i機(jī)器人api接口調(diào)用示例
這篇文章主要介紹了java實(shí)現(xiàn)小i機(jī)器人api接口調(diào)用示例,需要的朋友可以參考下2014-04-04
mybatis中關(guān)于type-aliases-package的使用
這篇文章主要介紹了mybatis中關(guān)于type-aliases-package的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
java設(shè)置session過(guò)期時(shí)間的實(shí)現(xiàn)方法
這篇文章主要介紹了java設(shè)置session過(guò)期時(shí)間的實(shí)現(xiàn)方法,以實(shí)例形式詳細(xì)講述了具體實(shí)現(xiàn)過(guò)程,非常具有參考借鑒價(jià)值,需要的朋友可以參考下2014-10-10
java int轉(zhuǎn)byte和long轉(zhuǎn)byte的方法
下面小編就為大家?guī)?lái)一篇java int轉(zhuǎn)byte和long轉(zhuǎn)byte的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-10

