1.输入一个字符串,要求遍历字符串,求出字符串的长度和打出它的每个字符。
import java.util.Scanner;
public class Practice16 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字符串:");
String line=sc.nextLine();
System.out.println("字符串的长度是:"+line.length());
for(int i=0;i<line.length();i++)
{
System.out.println(line.charAt(i));
}
}
}
2.输入一个字符串,统计其中大写字母,小写字母和数字的数量。
import java.util.Scanner;
public class Practice17 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字符串:");
String line=sc.nextLine();
int bigcount=0;
int smallcount=0;
int numbercount=0;
for(int i=0;i<line.length();i++)
{
char ch=line.charAt(i);
if(ch>'A'&&ch<'Z')
bigcount++;
else if(ch>'a'&&ch<'z')
smallcount++;
else if(ch>'0'&&ch<'9')
numbercount++;
}
System.out.println("大写字母数量:"+bigcount);
System.out.println("小写字母数量:"+smallcount);
System.out.println("数字数量:"+numbercount);
}
}
3.输入一个数组,要求调用方法,得到字符串 [...........](里面是数组的内容)
import java.util.Scanner;
public class Practice18 {
public static void main(String[] args) {
int[] arr={3,6,54,2,56,4};
String result=arrayToString(arr);
System.out.println(result);
}
public static String arrayToString(int[] arr)
{
String s="";
s+="[";
for(int i=0;i<arr.length;i++)
{if(i==arr.length-1)
s+=arr[i];
else s+=arr[i]+",";}
s+="]";
return s;
}
}
注意输入数组,得到字符串。
4.输入一个字符串,要求调用方法,反向输出字符串。
import java.util.Scanner;
public class Practice19 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字符串:");
String s=sc.nextLine();
String result=reverse(s);
System.out.println(result);
}
public static String reverse(String s)
{
String ss="";
for(int i=s.length()-1;i>=0;i--)
{
ss+=s.charAt(i);
}
return ss;
}
}
String是不可变的,但StringBuilder是可变的。
StringBuilder的用法:
public class StringBuilderDemo01 {
public static void main(String[] args) {
StringBuilder sb=new StringBuilder();
System.out.println("sb:"+sb);
System.out.println("sb.length():"+sb.length());
StringBuilder sb2=new StringBuilder("I love yuexin");
System.out.println("sb2:"+sb2);
System.out.println("sb2.length():"+sb2.length());
}
}
StringBuilder()不带内容的话,会创建一个空字符串,长度为0。
append()的使用:添加字符串并返回对象本身,(不需要重新声明字符串,用原来的即可)
reverse()的作用是使字符串反转。
public class StringBuilderDemo01 {
public static void main(String[] args) {
StringBuilder sb=new StringBuilder();
sb.append("yuexin").append(" ").append("is my wife");
System.out.println("sb:"+sb);
sb.reverse();
System.out.println("sb:"+sb);
}
}
上面的代码使用了链式方法,不断变换字符串的内容。
StringBuilder和String的转换
public class StringBuilderDemo01 {
public static void main(String[] args) {
StringBuilder sb=new StringBuilder("hello");
String s=sb.toString(); //StringBuilder转换成String
System.out.println(s);
StringBuilder sb2=new StringBuilder(s);//反过来只需要字符串传递即可
System.out.println(sb2);
}
}
升级版输出数组
public class StringBuilderDemo {
public static void main(String[] args) {
int[] arr={1,2,3,4,5};
String result=arrToString(arr);
System.out.println(result);
}
public static String arrToString(int[] arr)
{
StringBuilder s=new StringBuilder();
s.append("[");
for(int i=0;i<arr.length;i++)
{
if(i != arr.length-1)
s.append(arr[i]+",");
else
s.append(arr[i]);
}
s.append("]");
String ss=s.toString();
return ss;
}
}
升级版反转字符串
import java.util.Scanner;
public class Practice20 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字符串:");
String line=sc.nextLine();
String s=myreverse(line);
System.out.println(s);
}
public static String myreverse(String line)
{
StringBuilder ss=new StringBuilder(line);
ss.reverse();
String s=ss.toString();
return s;
}
}
也可使用下面的代码返回,更加简洁,但是新手还是规规矩矩地写吧。