1.键盘录入一个字符串,使用程序实现在控制台遍历字符串
package 遍历字符串;
import java.util.Scanner;
public class test1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字符串:");
String n=sc.next();
for (int i = 0; i < n.length(); i++) {
char c = n.charAt(i);
System.out.println(c);
}
}
}
2.统计字符次数
键盘录入一个字符串,统计该字符串中大、小写字母字符,字符出现的个数
package 统计字符次数;
import java.util.Scanner;
public class test1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字符串:");
String n=sc.next();
int count=0;
int index=0;
for (int i = 0; i < n.length(); i++) {
char c = n.charAt(i);
if (c>='a'&&c<'z'){
count++;
}else if(c>='A'&&c<='Z'){
index++;
}
}
System.out.println("小写:"+count+"大写:"+index);
}
}
3.定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果。
package 拼接字符串;
public class test1 {
public static void main(String[] args) {
int[]arr={1,2,3};
String s = arr(arr);
System.out.println(s);
}
//定义方法
public static String arr(int[]arr){
String sum="";
if (arr==null){
return "";
}
if (arr.length==0){
return "[]";
}
for (int i = 0; i < arr.length; i++) {
if (i==0){
sum="["+arr[i]+","+sum;
}else if (i==2){
sum=sum+arr[i]+"]";
}else {
sum=sum+arr[i]+",";
}
}
return sum;
}
}
4.定义方法,实现字符串反转。
键盘录入一个字符串,调用方法。
例如,abc->cba
package 字符串反转;
import java.util.Scanner;
public class test1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str=sc.next();
String remove = remove(str);
System.out.println(remove);
}
public static String remove(String str){
//得到字符串的长度
String sum="";
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
sum = c+sum;
}
return sum;
}
}
5.金额转换:
(第一个有错误,以此为鉴)
package 金额转换;
import java.util.Scanner;
public class test1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入一串数字:");
int number=sc.nextInt();
String reserve = reserve(number);
System.out.println(reserve);//把数字转化为中文数字
}
//定义方法
public static String reserve(int number){
//1.定义数组存放中文数字
String[]arr={"零","壹","贰","叄","肆","伍","陆","琪","捌","玖"};
//1.1
//2.单位数组
String[]brr={"佰","拾","万","仟","佰","拾","元"};
String s="";
//1.2获得个位上的数字
int count=0;
int temp=number;
// if (number<0||number>8){
// return "错误";
// }
while (true){
int get=number%10;//获得个位
// s=arr[ge]+s;
number=number/10;
count++;
if (number==0){
break;
}
}
for (int i = brr.length-1; i >=0; i--) {
int ge=temp%10;
if (temp>=0&&temp<=7){
s=arr[ge]+brr[i]+s;
}
temp=temp/10;
}
return s;
}
}
(第二个跟老师打的)
package 金额转换;
import java.util.Scanner;
public class test1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int number;
while (true){
System.out.println("请输入金额:");
number=sc.nextInt();
if (number>=0&&number<=99999999){
break;
}else {
System.out.println("金额无效");
}
}
String moneyStr="";
while (true){
int ge=number%10;
String capitalNumber = getCapitalNumber(ge);
moneyStr=capitalNumber+moneyStr;
number=number/10;
if (number==10){
break;
}
}
int count=7-moneyStr.length();
for (int i = 0; i < count; i++) {
moneyStr="零"+moneyStr;
}
System.out.println(moneyStr);
//2.单位数组
String[]brr={"佰","拾","万","仟","佰","拾","元"};
String result="";
for (int i = 0; i < moneyStr.length(); i++) {
char c = moneyStr.charAt(i);
result=result+c+brr[i];
}
}
//定义方法
public static String getCapitalNumber(int number){
//1.定义数组存放中文数字
String[]arr={"零","壹","贰","叄","肆","伍","陆","琪","捌","玖"};
return arr[number];
}
}
6.字符串的号码屏蔽
package 手机号屏蔽;
import java.util.Scanner;
public class test1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入您的电话号码:");
String number=sc.next();
String s = number.substring(0, 3);
String s1 = number.substring(7);
String result=s+"****"+s1;
System.out.println(result);
}
}
7.StringBuilder练习
1)append增加
2)reverse反转
3)length()长度
4)toString拼接字符串
<1>键盘接受一个字符串,程序判断出该字符串是否是对称字符串,并在控制台打印是或不是
对称字符串:123321、111
非对称字符串:123123
package 判断对称字符串;
import java.util.Scanner;
public class test1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字符串:");
String number=sc.next();
StringBuilder sb=new StringBuilder();
String s = sb.append(number).reverse().toString();
if (s.equals(number)){
System.out.println("是");
}else {
System.out.println("不是");
}
}
}
8.StringJoiner构造方法
1)add增加
2)toSting拼接
3)length()长度
4)StringJoiner sj=new StringJoiner("中间符号","左边符号","右边符号");
9.键盘录入一个字符串,
要求1:长度小于等于9
要求2:只能是数字
将内容变成罗马数字
下面是阿拉伯数字跟罗马数字的对比关系:
Ⅰ-1,Ⅱ-2,Ⅲ-3,Ⅳ-4,Ⅴ-5,Ⅵ-6,Ⅶ-7,Ⅷ-8,Ⅺ-9
注意点:
罗马数字里面是没有0的
如果键盘录入的数字包含0,可以变成" "(长度为0的字符串)
1)方法1:
package 罗马数字;
import java.util.Scanner;
public class test1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int number;
while (true){
System.out.println("请输入一个字符串:");
//要求2:只能是数字
number=sc.nextInt();
//要求1:长度小于等于9
if (number>=0&&number<=999999999){
break;
}else {
System.out.println("输入错误");
}
}
//2.2每位数
int ge;
int count=0;
String result="";
while (true){
ge=number%10;
String s = luoNumber(ge);
result=s+","+result;
count++;
number=number/10;
if (number==0){
break;
}
}
System.out.println(result);
//3.将内容变成罗马数字
}
public static String luoNumber(int ge){
String[]arr={" ","Ⅰ","Ⅱ","Ⅲ","Ⅳ","Ⅴ","Ⅵ","Ⅶ","Ⅷ","Ⅸ"};
return arr[ge];
}
}
2)方法2:
package 罗马数字;
import java.util.Scanner;
public class test1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String str;
while (true){
System.out.println("请输入一个字符串:");
str=sc.next();
boolean flag = checkStr(str);
if (flag){
break;
}else {
System.out.println("错误");
}
}
StringBuilder sb=new StringBuilder();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
int number=c-48;
String s = changeLuoMa(number);
sb.append(s);
}
System.out.println(sb);
}
public static boolean checkStr(String str){
if (str.length()>9){
return false;
}
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c<'0'||c>'9'){
return false;
}
}
return true;
}
public static String changeLuoMa(int number){
String[]arr={" ","Ⅰ","Ⅱ","Ⅲ","Ⅳ","Ⅴ","Ⅵ","Ⅶ","Ⅷ","Ⅸ"};
return arr[number];
}
}
10.调整字符串
给定两个字符串,A和B。
A的旋转操作就是将A最左边的字符移动到最右边。
例如,若A='abcde',在移动一次之后结果就是'bcdea'。
如果在若干次调整操作后,A能变成B,那么返回True。
如果不能匹配成功,则返回false
package 调整字符串;
public class test1 {
public static void main(String[] args) {
String strA="abcde";
String strB="cdeab";
boolean b=b(strA,strB);
System.out.println(b);
}
//2.判断是否相等
public static boolean b(String strA,String strB){
for (int i = 0; i < strA.length(); i++) {
strA=rotate(strA);
if (strA.equals(strB)){
return true;
}
}
return false;
}
//1.旋转拼接:A的旋转操作就是将A最左边的字符移动到最右边。
public static String rotate(String strA){
//1.1截取
char first = strA.charAt(0);
String s = strA.substring(1);
return s+first;
}
}
11.键盘输入任意字符串,打乱里面的内容
package 打乱字符串;
import java.util.Random;
//1.subString
//2.变成字符数组
public class test1 {
public static void main(String[] args) {
String str="abcde";
Random sc=new Random();
char[]arr=str.toCharArray();
for (int i = 0; i < arr.length; i++) {
int num= sc.nextInt(str.length());
char temp=arr[i];
arr[i]=arr[num];
arr[num]=temp;
}
String result=new String(arr);
System.out.println(result);
}
}