习题23.使用“= =”对相同内容的字符串进行比较,看会产生什么样的结果。
答:首先创建一个字符串变量有两种方式:String str = new String("abc");String str = "abc";使用“= =”会因为创建的形式不同而产生不同的结果:String str1 = "abc";String str2 = "abc";System.out.println(str1= =str2); //trueString str1 = new String("abc"); String str2 = "abc";System.out.println(str1= =str2); //falseString str1 = new String("abc"); String str2 = new String("abc"); System.out.println(str1= =str2); //false因此自符串如果是对内容进行比较,使用equals方法比较可靠。
String str1 = "abc";String str2 = "abc";System.out.println(str1= =str2); //trueString str1 = new String("abc"); String str2 = "abc";System.out.println(str1.equals(str2)); //trueString str1 = new String("abc"); String str2 = new String("abc"); System.out.println(str1.equals(str2)); //true5.编写一个程序,把变量n的初始值设置为1678,然后利用除法运算和取余运算把变量的每位数字都提出来并打印,输出结果为:n=1678。
n的每位数字是1,6,7,8。
若n为任意值呢?法一:public class Exercise5{public static void main(String[] args){int n=1678;int unit;int decimal;int hundred;int thousand;int count;thousand=n/1000;count=n%1000;hundred=count/100;count=count%100;decimal=count/10;count=count%10;unit=count;System.out.println("1678包含的数字分别是:"+thousand+','+hundred+','+decimal+','+unit);}}//如果n为任意值import java.io.*;public class Exercise51{public static void main(String[] args) throws IOException{System.out.print("请输入一个整数:");InputStreamReader isStream=new InputStreamReader(System.in);BufferedReader bfReader=new BufferedReader(isStream);String input=bfReader.readLine(); int length=input.length()-1;int n=newInteger(input).intValue();while(length>=0){int divisor=(int)Math.pow(10,length); length=length-1;int output=n/divisor;n=n%divisor;System.out.print(output+",");}}}法二:(建议使用)public class Exercise5{public static void main(String[] args){int n=1678;int unit;int decimal;int hundred;int thousand;thousand=n/1000%10;hundred=n/100%10;decimal=n/10%10;unit=n%10;System.out.println("1678包含的数字分别是:"+thousand+','+hundred+','+decimal+','+unit);}}//如果n为任意值import java.io.*;public class Exercise51{public static void main(String[] args) throws IOException{System.out.print("请输入一个整数:");InputStreamReader isStream=new InputStreamReader(System.in);BufferedReader bfReader=new BufferedReader(isStream);String input=bfReader.readLine(); int length=input.length()-1;int n=newInteger(input).intValue();while(length>=0){int divisor=(int)Math.pow(10,length); length=length-1;int output=n/divisor%10;System.out.print(output+",");}}}6.编写Java程序,接受用户输入的1-12之间的整数,若不符合条件则重新输入,利用switch语句输出对应月份的天数。
import java.io.*;public class Exercise6{public static void main(String[] args) throws IOException{int n;do{System.out.print("请输入1-12之间的整数:");InputStreamReader isStream=new InputStreamReader(System.in);BufferedReader bfReader=new BufferedReader(isStream);String input=bfReader.readLine(); n=new Integer(input).intValue(); }while(n>12||n<1);switch(n){case 2: System.out.println(n+"月份29天");break;case 1:case 3:case 5:case 7:case 8:case 10:case 12: System.out.println(n+"月份31天");break;case 4:case 6:case 9:case 11: System.out.println(n+"月份30天");break;}} }7.编写Java程序计算小于一个整数的全部素数并输出。
import java.io.*;public class Exercise7{public static void main(String[] args) throws IOException{System.out.print("请输入一个整数:");InputStreamReader isStream=new InputStreamReader(System.in);BufferedReader bfReader=new BufferedReader(isStream);String input=bfReader.readLine(); int n=newInteger(input).intValue();int i;System.out.println(2);for(i=2;i<n;i++){for(int j=2;j<=i/2+1;j++){if (i%j==0) break;if (j==i/2+1)System.out.println(i);} }}}9.编写Java程序实现:输入一组整数存放在数组中,比较并输出其中的最大值和最小值;在将数组元素从小到大排序并输出。
import java.io.*;public class Exercise9{public static void main(String[] args) throws IOException{final int N=5;int[] intArray=new int[N];//数组的赋值for(int i=0;i<N;i++){System.out.print("数组的第"+i+"个元素是:");InputStreamReader isStream=new InputStreamReader(System.in);BufferedReader bfReader=new BufferedReader(isStream);String input=bfReader.readLine(); int n=newInteger(input).intValue();intArray[i]=n;}//求最大最小值int max=intArray[0];int min=intArray[0];for(int j=0;j<N;j++){if(max<intArray[j])max=intArray[j];if(min>intArray[j])min=intArray[j];}System.out.println("最大值为:"+max);System.out.println("最小值为:"+min);//从小到大排序int temp;for(int i=0;i<N;i++){for(int j=i;j<N;j++){if(intArray[i]>intArray[j]){temp=intArray[i];intArray[i]=intArray[j];intArray[j]=temp;}}}//将排序后的结果打印System.out.println("排序后的数组为:");for(int i=0;i<N;i++){System.out.print(intArray[i]+","); }}}10.编写一个方法来计算正方形的面积和周长。