案例1;

import java.util.Scanner;
 import java.util.Arrays; 

 public class Test1 { 

public static void main(String[] args) { 

int i,j; 

int m=1;    //记录字符在在字符串中出现的次数 

int n=100;  //字符串的最大长度 

int a=0,b=0;//a为出现重复次数最多的个数,b为出现重复次数最少的个数 

char[] wcf=new char[n]; 

Scanner scan = new Scanner(System.in); 

//字符串初始化 

System.out.println("请输入字符串:"); 

String sz=scan.next(); 

//统计字符串的字符个数 

System.out.println("字符数为:"+sz.length()); 

//字符串转换为字符数组 

char[] szc=sz.toCharArray(); 

//字符数组排序 

Arrays.sort(szc); 

//字符数组排序后输出 

System.out.print("排序后的字符为:"); 

System.out.println(szc); 

//排序后的数组szc的第一个字符放入到新的字符数组wcf里面 

wcf[0]=szc[0]; 

//记录不重复的字符个数j 

for(i=1,j=1;i<szc.length;i++){ 

if(szc[i]!=szc[i-1]){ 

wcf[j]=szc[i]; 

j++; 
  

} 

} 

int[] cfs=new int[j];//定义数组cfs用以存储字符出现的次数 

//存储字符出现的次数 
  

for(i=1,j=1;i<szc.length;i++){ 

if(szc[i]!=szc[i-1]){ 

cfs[j-1]=m;   //把字符出现的次数放入数组cfs中 

m=1;          //放入上一个字符的次数后m归1 

wcf[j]=szc[i]; //把无重复的字符放入wcf数组中 

j++; 

} 

else{ 

m++;         //记录字符重复的次数 

} 

} 

cfs[j-1]=m;         //把最后一个字符出现的次数放入cfs数组中 

//输出排序后无重复的数组 

System.out.print("去掉重复的字符后的字符:"); 

for(int t=0;t<j;t++){ 

System.out.print(wcf[t]); 

} 

System.out.println(); 

//输出不重复的字符数 

System.out.println("不重复的字符数:"+j); 
 

int[] cfph=new int[j]; //定义一个新数组 

for(i=0;i<j;i++){ 

cfph[i]=cfs[i];   //把数组cfs的数据全部copy到数组cfph中 

} 

Arrays.sort(cfph);    //对数组cfph进行排序 

//输出出现重复次数最多的个数 

System.out.print("最大重复数:"); 

if(cfph[cfph.length-1]!=1){ 

a=cfph[cfph.length-1]; 

} 

System.out.println(a); 

//输出出现重复次数最少的个数 

System.out.print("最小重复数:"); 

for(int t=0;t<cfph.length;t++){ 

 

if(cfph[t]!=1){ 

b=cfph[t]; 

break; 

} 

} 

System.out.println(b); 

//输出出现重复最少的字符 

System.out.print("出现重复最少的字符为:"); 

for(i=0;i<j;i++){ 

if(cfs[i]==b){ 

System.out.print(wcf[i]+" "); 

} 

} 

System.out.println(); 

//输出出现重复最少的字符的次数 

System.out.println("出现重复最少的字符的次数:"+b); 

//输出出现重复最多的字符 

System.out.print("出现重复最多的字符为:"); 

for(i=0;i<j;i++){ 

if(cfs[i]==a){ 

System.out.print(wcf[i]+" "); 

} 

} 

System.out.println(); 

//输出出现重复最多的字符的次数 

System.out.println("出现重复最多的字符的次数:"+a); 

} 

}




案例2;

public class MyString {


public static void main(String[] args) {


/*
* 1、String应用
* Java语言中,把字符串作为对象来处理,类String和StringBuffer都可以用来表示一个字符串。(类名都是大写字母打头)
*/

// 字符串1
/*String str1 = "eduask";

// 字符串2
String str2 = new String();

// 字符串3: 参考API文档
String str3 = new String("admin");

char chars1[] = {'a','b','c'}; 
char chars2[] = {'a','b','c','d','e'}; 
String s1 = new String(chars1); 
String s2 = new String(chars2,0,3); */


/*
* 2、StringBuffer表示字符串
* 
* StringBuffer类提供的方法: append():用来在已有字符串末尾添加一个字符串str。
* insert():用来在字符串的索引offset位置处插入字符串str。 
* setCharAt():用来设置指定索引index位置的字符值。
* char charAt(int index) :在当前StringBuffer对象中取索引号为index的字符。第一个字符的索引为“0”
* StringBuffer delete(int start, int end) :删除当前StringBuffer对象中以索引号start开始,到end结束的子串。
* StringBuffer deleteCharAt(int index) :删除当前StringBuffer对象中索引号为index的字符。
* 
* 注意:String中对字符串的操作不是对源操作串对象本身进行的,而是对新生成的一个源操作串对象的拷贝进行的,其操作的结果不影响源串。
* 相反,StringBuffer中对字符串的连接操作是对源串本身进行的,操作之后源串的值发生了变化,变成连接后的串。
*/



/*String question = new String("1+1=");
int answer = 3;
boolean result = (1+1==3);
StringBuffer sb = new StringBuffer();
sb.append(question);
sb.append(answer);
sb.append("\t");
sb.append(result);
System.out.println(sb);*/


   /*String s1 = "STRING类的值是不是会变的->";
   String s2 = s1;
   System.out.println(s2);
   s1+="加个试试"; //String 赋值实际上这个是NEW了一个新的对象了,S1变了
   System.out.println(s2); //S2没有变,这是因为S2指向的地址还是最早的s1所在的地址
 
   StringBuffer b1=new StringBuffer("StringBuffer类的值是会变的->");
   StringBuffer b2=b1;
   b2.append("加个试试");//StringBuffer赋值,操作b2还是那个对象,
   System.out.println(b1);//所以加一个字符进去b1指向的对象的值已经变了哦
 */


   
   /*String str1 = "hello";
   String str2 = "world";
   String str1 = str1 + str2;//这里所做的内部操作,其实不是把str1的内容改变为原str1+str2的内容这么简单, 而把创建一个新的String, 内容为str1 + str2的内容,然后再把str1这个引用重新指向新创建的String, 这就是上面说的String不可变.


   而如果是StringBuffer的话,则直接更改str1的内容,而不是先创建一个新的StringBuffer


   使用 StringBuffer 主要就是在性能上的考虑。


   String 是一种非常常用的数据类型,但由于 String 是不可变对象,在进行 String 的相关操作的时候会产生许多临时的 String 对象。


   而 StringBuffer 在操作上是在一个缓冲中进行的,性能当然优越得多。


   不过,一般做为简单的字符串传递和其它操作,只不要改变字符串内容的操作,用 String 效率会高一些。*/




   //综合应用
   
   StringBuffer buffer=new StringBuffer("wish");
   System.out.println(buffer.toString());
   System.out.println(" 长度:"+buffer.length());
   System.out.println("容量:"+buffer.capacity());
   buffer.setCharAt(0, 'R');//以一个整数和字符为参数,将StringBuffer对象中指定位置的字符替换为参数中的字符
   buffer.append('!');// 将参数转换成字符串,添加到StringBuffer对象的末尾


   buffer.append("Hello,welcome here!");
   buffer.insert(0, "Hello");//在StringBuffer对象的指定位置插入各种类型的值
   System.out.println(buffer.toString());
   System.out.println(" 长度:"+buffer.length());//返回StringBuffer对象的当前字符数目
   System.out.println(" 容量:"+buffer.capacity());//不需另外分配内在的情况下,返回StringBuffer对象可以存储的


   //字符数目
   buffer.delete(0, 3);//从start 到 end
   System.out.println(buffer.toString());
   buffer.deleteCharAt(2);// 删除第几个字符
   buffer.reverse();//颠倒StringBuffer对象中的内容
   System.out.println(buffer.toString());// 打印字符串

}
 }



案例3;

public class UseStringTest {     

public static void main(String[] args) {         
new UseStringTest().useString2();
}

public void useString1(){

String text = "hello";          
System.out.println("字串内容: " + text);         
System.out.println("字串长度: " + text.length());         
System.out.println("等于hello? " + text.equals("hello"));         
System.out.println("转为大写: " + text.toUpperCase());         
System.out.println("转为小写: " + text.toLowerCase());  
}

public void useString2(){

String text = "Your left brain has nothing right.\n" + "Your right brain has nothing left.\n";          
System.out.println("字串内容: ");         
for(int i = 0; i < text.length(); i++)             
System.out.print(text.charAt(i));         
System.out.println("\n第一个left: " + text.indexOf("left"));         
System.out.println("最后一个left: " + text.lastIndexOf("left"));          
char[] charArr = text.toCharArray();         
System.out.println("\n字元Array内容: ");         
for(int i = 0; i < charArr.length; i++)             
System.out.print(charArr[i]);
}
 }


案例4;

package com.eduask.Test;

 import java.util.Arrays;

 public class Teeeee {

public static void main(String[] args) {
int[] number={1,2,3,4,5,6,7};
for(int a:number){
System.out.println(a);
}
 String s = "andq";
 
 char[] sc = s.toCharArray();
 for (char s1 : sc) {
 System.out.println(s1);
 }
 
 char[] sc1 = new char[sc.length+1];
 for (int i=0,j=0;i<sc1.length;i++) {
 if (i==1) {
 sc1[i] = 'e';
 } else {
 sc1[i] = sc[j];
 j++;
 }
 }
 String s1=sc1.toString();
 System.out.println(s1);
 
/* char[] ch = {'q','w','e','r'};
for (char c : ch){
System.out.println(c);
}
String s = String.valueOf(ch);
String s1 = Arrays.toString(ch);
System.out.println(s1);*/
 
/* String s = "andq";
StringBuffer sb = new StringBuffer(s);
sb.setCharAt(1, 'e');
System.out.println(sb);*/
 
StringBuffer sb = new StringBuffer("qnniasdnf");
sb.insert(0, 'a');
System.out.print(sb);  
 
}
 }