一、实验内容
1、编写一个程序,这个程序把一个整数数组中的每个元素用逗号连接成一个字符串.
输入案例:1 2 6 4 5 7 8 9 10
输出案例:1,2,6,4,5,7,8,9,10
package ShiYan6;
import java.util.Scanner;
public class Demo011 {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
String s=sc.nextLine();
String[] str=s.split(" ");
for(int i=0;i<str.length;i++) {
if(i!=str.length-1) {
System.out.print(str[i]+",");
} else {
System.out.println(str[i]);
}
}
}
}
2、判断一个字符串是否是对称字符串。例如"abc"不是对称字符串。"aba"、"abba"、"aaa"、"mnanm"是对称字符串
输入案例1:aba
输出案例1:该字符串是对称的
输入案例2:abc
输出案例2:该字符串是不对称的
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args){
Scanner SC=new Scanner(System.in);
String str= SC.next();
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("该字符串是不对称的");
else
System.out.println("该字符串是对称的");
}
}
3、编写一个将字符串分段的类,传入:需分段的字符串 与 字符个数(以此个数进行分段),输出:按指定字符个数进行分段后的若干字符串(汉字算单个字符)。
输入案例:
abcdefghijklmn
4
输出案例(PS:"they are"后面有一个空格):
The string is abcdefghijklmn
It is divided into 4 substrings, they are
abcd
efgh
ijkl
mn
package ShiYan6;
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
StringBuilder str = new StringBuilder();
Scanner sc= new Scanner(System.in);
String n=sc.next();
str.append(n);
int l = sc.nextInt();
System.out.println("The string is "+n);
// System.out.print("It is divided into "+m+" substrings, they are ");
int m=0;
for(int i=0;i+m<str.length();i++){
if(i%l==0) {
str.insert(i + m, ",");
m++;
}
}
System.out.print("It is divided into "+m+" substrings, they are ");
String se= str.toString();
String []a=se.split(",");
for(String j:a)
System.out.println(j);
}
}
四、实验结果与分析(包括:输入数据、输出数据、程序效率及正确性等)(此处写清题号与其答案,可截图)
程序运行结果截图如下:
程序运行结果截图如下:
程序运行结果截图如下:
五、问题与讨论
怎么判断一个字符串是否为对称的字符串的方法有以下几种。
方法一:通过取取索引对应值来进行一一比对
public static void main(String[] args){
Scanner input = new Scanner(System.in);
String str = input.next();//接收任意字符串
isOk1(str);
}
/**
* 判断字符串是否对称的方法(一)
* 通过取取索引对应值来进行一一比对
方法二:通过String加强类中的取反方法reverse获取其逆向值
public static void main(String[] args){
Scanner input = new Scanner(System.in);
String str = input.next();//接收任意字符串
if (isOk2(str)==true) {
System.out.println("真,对称!");
}else{
System.out.println("假,不对称!");
}
}
public static boolean isOk2(String str){
StringBuffer sb = new StringBuffer(str);
String str2 = sb.reverse().toString();
return str.equals(str2);
}