*/
import java.util.Scanner;
class StringDemo { public static void main(String[] args) { while(true) { show(); } } public static void show() {
System.out.print(\请输入要判断的字符串:\Scanner sc = new Scanner(System.in); String line = sc.nextLine();
System.out.println(\你输入的是:\int length = line.length();
//先判断字符串的字符个数是奇数还是偶数 //偶数时
if(length%2==0) { //截取成前后两个子字符串 String s1 = line.substring(0,length/2);
String s2 = line.substring( length/2 , length); //注意偶数个和奇数个的不同在此://将两个字符串转换成字符数组
char[] chs1 = s1.toCharArray(); char[] chs2 = s2.toCharArray(); int chsLength = chs1.length;
//统计对比次数和数组长度一致就是符合,否则不符合 int count = 0; //遍历数组
for(int i = 0 ; i < chsLength; i++) { //对比字符是否相同 if(chs1[ i ] !=chs2[ chsLength - i - 1 ]) { System.out.println(\这个字符串不符合aba\ break; } //统计对比次数 count ++;
偶数不加1
} } else {
if(count == chsLength ) { System.out.println(\符合aba\}
//截取成前后两个子字符串
String s1 = line.substring(0,length/2);
String s2 = line.substring( length/2 + 1, length); //注意偶数个和奇数个的不同在此:奇数加1 //将两个字符串转换成字符数组 char[] chs1 = s1.toCharArray(); char[] chs2 = s2.toCharArray(); int chsLength = chs1.length;
//统计对比次数和数组长度一致就是符合,否则不符合 int count = 0; //遍历数组
for(int i = 0 ; i < chsLength; i++) { //对比字符是否相同 if(chs1[i] !=chs2[chsLength-i-1]) {
}
System.out.println(\这个字符串不符合aba\break;
//统计对比次数 count ++; if(count == chsLength ) { System.out.println(\符合aba\ } } } } }
//////////////////////////////////////////////////// \/*
题目: 如何用反射创建一个对象。用两种方式,要求写代码 思路:
一共有三种方式 1、调用Object类的getClass()方法 2、数据类型的静态的class属性 3、通过Class类的静态方法forName(String className) (注意:使用这种方式的时候要用全路径名) */
import java.lang.reflect.Constructor; class Test { public static void main(String[] args) throws Exception {
//第一种:获取字节码文件对象
Class> c1 = Class.forName(\
//获取构造器对象
Constructor> con1 = c1.getConstructor(String.class,int.class); //创建对象
con1.newInstance(\张三\//第二种:获取字节码文件对象 Class
//获取构造器对象
Constructor
//创建对象 con2.newInstance(\李四\ } }
//用来测试反射的类 class Person { private String name; private int age; public Person(){}; public Person(String name,int age) { this.name = name; this.age = age; System.out.println(name+\ } }
////////////////////////////////////////////////////// \/*
题目:
编写一个类,增加一个实例方法,用于打印一条字符串, 并使用反射手段创建该类的对象,并调用对象的方法。 思路: 1、通过Class.forName()方法获取字节码文件对象 2、获取构造器对象 3、创建对象 4、获取成员方法对象 */
import java.lang.reflect.Constructor; import java.lang.reflect.Method; class Test { public static void main(String[] args) throws Exception {
//获取字节码文件对象
Class> c = Class.forName(\//获取构造器对象
Constructor> con = c.getConstructor(); //创建对象
Object obj = con.newInstance();
//获取成员方法对象 Method m = c.getMethod( \ m.invoke(obj); } }
class Demo { public Demo(){} public void sayHello( ) {
System.out.println(\这是打印的方法\ } }
//////////////////////////////////////////////////////// \/*
题目: 编写程序,生成5个1至10之间的随机整数,存入一个List集合, 编写方法对List集合进行排序(自定义排序算法,禁用Collections.sort 方法和TreeSet),然后遍历集合输出。 思路: 1、用Math的random()方法生成五个随机整数 2、用ArrayList集合存储随机数
3、遍历ArrayList集合并对其排序 4、遍历输出 */
import java.util.ArrayList;
class Test { public static void main(String[] args) {
//创建ArrayList集合
ArrayList
//用循环的方式,生成五个随机整数并存入ArrayList集合中 for(int i = 0; i < 5; i ++) { //生成随机整数 int rand = (int)(Math.random() * 10 ) + 1; }
//向List集合添加元素 list.add(rand);
//冒泡排序,外层控制对比次数 for(int i = 0; i < list.size() - 1; i ++) { //内存控制比较过程 for(int k = 0;k < list.size() - i - 1; k ++) { //调整顺序 if(list.get(k) > list.get(k+1)) { int max = list.get(k); list.set( k ,list.get(k + 1)); list.set( k + 1 ,max); } } }
//遍历集合 for(int i = 0; i < list.size(); i ++) { System.out.println(list.get(i)); } } }
//////////////////////////////////////////////////////// \