目錄
1、"a"+"b"+"c"+"d"+"e"+"f"+"g"+"h"改寫上面的代碼,打印結果
package work1;
public class Work1 {
public static void main(String[] args) {
StringBuffer s = new StringBuffer();
s= s.append("a");
s= s.append("b");
s= s.append("c");
s= s.append("d");
s= s.append("e");
s= s.append("f");
s= s.append("g");
s= s.append("h");
System.out.println(s);
}
}
2、給定一個長度,隨機產生一個該長度的字符串,由大寫,小寫字母以及數字組成
Java中隨機數的生成:
java.util.Random r = new java.util.Random();
int a = r.nextInt(100): a 0-99的隨機數
第一種:
package work2;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.Scanner;
public class Work2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Random r = new Random();
System.out.println("請輸入生成字符串的長度");
int length = sc.nextInt();
String s = "";
for(int i = 0;i<length;i++){
int random = r.nextInt(2);
if(random==1){
int num = r.nextInt(10);//隨機產生數字
s=s+s.valueOf(num);
}
else {
int randomChar = r.nextInt(2);
if(randomChar==1){//隨機產生大寫字母
char str =(char)(r.nextInt(26)+'A');
s=s+s.valueOf(str);
}
else{//隨機產生小寫字母
char str =(char)(r.nextInt(26)+'a');
s=s+s.valueOf(str);
}
}
}
System.out.println(s);
}
}
第二種:
package work2;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.Scanner;
public class Work2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Random r = new Random();
System.out.println("請輸入生成字符串的長度");
int length = sc.nextInt();
//創建一個集合存儲大寫小寫字母以及數字
List<Character> list = new ArrayList<Character>();
for(char c ='A';c<='Z';c++)
list.add(c);
for(char c ='a';c<='z';c++)
list.add(c);
for(char c ='0';c<='9';c++)
list.add(c);
String s = "";//保存結果
for(int i = 0;i<length;i++){
//隨機獲取字符下標
int a = r.nextInt(list.size());
s = s+list.get(a);
}
//打印
System.out.println(s);
}
}
3、給定一個字符串,判斷該字符串中是否包含某個子串.如果包含,求出子串的所有出現位置.
如:"abcd23abc34bcd"中,"bc"子串的出現位置為: 1,7,11.字符串和子串均由用戶輸入
package work3;
import java.util.Scanner;
public class Work3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("請輸入字符串");
String s1 = sc.next();
System.out.println("請輸入子串");
String s2 = sc.next();
int index =0;
while((index=s1.indexOf(s2, index))!=-1){
System.out.print(index+" ");
index = index +s2.length();
}
}
}
4、給定一個由數字組成的字符串,如:"1239586838923173478943890234092",統計出每個數字出現的次數
第一種:
package work4;
import java.util.Scanner;
public class Work4 {
public static void main(String[] args) {
String s = "1591231231231326560686464506565791310665979803";
int[] count = new int[10];
for(int i=0;i<10;i++){
String s1 = s;
int index=0;
while(true){
index = s1.indexOf(String.valueOf(i));
if(index!= -1){
s1=s1.substring(index+1);//截取字符串
count[i]++;
}
else break;
}
}
for (int i=0;i<count.length;i++) {
System.out.println(i+" 出現的次數 "+count[i]);
}
}
}
第二種:
package work4;
import java.util.Scanner;
public class Work4 {
public static void main(String[] args) {
String s = "1591231231231326560686464506565791310665979803";
int[] arr = new int[10];//創建數組記錄次數
for(int i =0;i<s.length();i++){
arr[s.charAt(i)-'0']++;
}
//遍歷
for (int i=0;i<arr.length;i++) {
System.out.println(i+"的次數是"+arr[i]);
}
}
}
5、給定一個字符串,請輸出該字符串由哪些字符組成,每個字符出現幾次?
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class Work5 {
public static void main(String[] args) {
String s ="s13fs54fas87f8sf40";
Map<Character, Integer> map = new HashMap<Character, Integer>();//一個key值對應一個value
for(int i=0;i<s.length();i++){
Character c =s.charAt(i);
if(map.get(c)==null)//第一次加入到map集合
map.put(c, 1);
else
map.put(c, map.get(c)+1);
}
Set<Character> keySet = map.keySet();
for (Character character : keySet) {
System.out.println(character+"----"+map.get(character));
}
}
}
6、字符編碼 "aaaaaaabbbbbcerrrrggggggggsssssspoqqqqq"==> "a7b5cer4g8s6poq5"
public class Work6 {
public static void main(String[] args) {
String str = "aaaaaaabbbbbcerrrrggggggggsssssspoqqqqq";
StringBuilder sb = new StringBuilder("");
char current = str.charAt(0);
int count = 1;
for(int i = 1 ; i < str.length() ; i++){
char c = str.charAt(i);
if (c == current){
count++;
}
else{
if (count == 1) sb.append(current);
else sb.append(current).append(count);
current = c;
count = 1;
}
}
if (count == 1) sb.append(current);
else sb.append(current).append(count);
System.out.println(sb.toString());
}
}