1、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF",6,应该输出为"我ABC"而不是"我ABC+汉的半个"。
答:代码如下:
packagetest;
classSplitString{
StringSplitStr;
intSplitByte;
publicSplitString(Stringstr,intbytes){
SplitStr=str;
SplitByte=bytes;
System.out.println("TheStringis:′"+SplitStr+"′;SplitBytes="+SplitByte);
}
publicvoidSplitIt(){
intloopCount;
loopCount=(SplitStr.length()%SplitByte==0)?(SplitStr.length()/SplitByte): (SplitStr.length()/SplitByte+1);
System.out.println("WillSplitinto"+loopCount);
for(inti=1;i<=loopCount;i++){
if(i==loopCount){
System.out.println(SplitStr.substring((i- 1)*SplitByte,SplitStr.length()));
}else{
System.out.println(SplitStr.substring((i-1)*SplitByte,(i*SplitByte)));
}
}
}
publicstaticvoidmain(String[]args){
SplitStringss=newSplitString("test中dd文dsaf中男大3443n中国43中国人
0ewldfls=103",4);
ss.SplitIt();
}
}
2、使用 String 类的 public String toUpperCase() 方法可以将一个字符串中的小写字母变成大写字母;使用 public String toLowerCase() 方法可以将一个字符串中的大写字母变成小写字母。编写一个程序,使用这个两个方法实现大小写的转换。
import java.applet.*;
import java.awt.*;
public class Boy extends Applet{
public void paint(Graphics g){
String s1,s2,t1="ABCDabcd";
s1=t1.toUpperCase();
s2=t1.toLowerCase();
g.drawString(s1,30,60);
g.drawString(s2,30,90);
}
}
3、使用 String 类的 public String concat(String str) 方法可以把调用该方法的字符串与参数指定的字符串连接,把 str 指定的串连接到当前串的尾部获得一个新的串。编写一个程序通过连接两个串得到一个新串,并输出这个新串。
import java.applet.*;
import java.awt.*;
public class Boy extends Applet{
public void paint(Graphics g){
String s1,s2,s3,t1="ABCDabcd";
s1=t1.toUpperCase();
s2=t1.toLowerCase();
s3=s1.concat(s2);
g.drawString(s1,30,60);
g.drawString(s2,30,90);
g.drawString(s3,30,120);
}
}
4、 String 类的 public char charAt(int index) 方法可以得到当前字符串 index 位置上的一个字符。编写程序使用该方法得到一个字符串中的第一个和最后一个字符。
class E{
public static void main(String args[]){
String s=" 中国科学技术大学 ";
char a=s.charAt(0),b=s.charAt(s.length()-1);
System.out.print(a);
System.out.println(b);
}
}
5、输出某年某月的日历页,通过 main 方法的参数将年份和月份时间传递到程序中。
import java.util.*;
class Ex{
public static void main(String args[]){
int year,month;
try{
year=Integer.parseInt(args[0]);
month=Integer.parseInt(args[1])+1;
}catch(NumberFormatException e){
year=2004;
month=1;
}
System.out.println(" 日 一 二 三 四 五 六 ");
Calendar 日历 =Calendar.getInstance();
日历 .set(year,month,1);
int 星期几 = 日历 .get(Calendar.DAY_OF_WEEK)-1;
String a[]=new String[ 星期几 +31];
for(int i=0;i< 星期几 ;i++){
a[i]="**";
}
for(int i= 星期几 ,n=1;i< 星期几 +31;i++){
if(n<=9)
a[i]=String.valueOf(n)+" ";
else
a[i]=String.valueOf(n) ;
n++;
}
for(int i=0;i<a.length;i++){
if(i%7==0){
System.out.println("");
}
System.out.print(" "+a[i]);
}
}
}
6、计算某年、某月、某日和某年、某月、某日之间的天数间隔。要求年、月、日通过 main 方法的参数传递到程序中。
class Ex{
public static void main(String args[]){
int year1,month1,day1,year2,month2,day2;
try{
year1=Integer.parseInt(args[0]);
month1=Integer.parseInt(args[1]);
day1=Integer.parseInt(args[2]);
year2=Integer.parseInt(args[3]);
month2=Integer.parseInt(args[4]);
day2=Integer.parseInt(args[5]);
}catch(NumberFormatException e){
year1=2004;
month1=0;
day1=1;
year2=2004;
month2=0;
day2=1;
}
Calendar calendar=Calendar.getInstance();
calendar.set(year1,month1,day1);
long timeYear1=calendar.getTimeInMillis();
calendar.set(year2,month2,day2);
long timeYear2=calendar.getTimeInMillis();
long 相隔天数 =Math.abs((timeYear1-timeYear2)/(1000*60*60*24));
System.out.println(""+year1+" 年 "+month1+" 月 "+day1+" 日和 "+
year2+" 年 "+month2+" 月 "+day2+" 日相隔 "+ 相隔天数 +" 天 ");
}
}
7、编程练习 Math 类的常用方法。
class E{
public static void main(String args[]){
double a=0,b=0,c=0;
a=12;
b=24;
c=Math.max(a,b);
System.out.println(c);
c=Math.min(a,b);
System.out.println(c);
c=Math.pow(2,3);
System.out.println(c);
c=Math.abs(-0.123);
System.out.println(c);
c=Math.asin(0.56);
System.out.println(c);
c=Math.cos(3.14);
System.out.println(c);
c=Math.exp(1);
System.out.println(c);
c=Math.log(8);
System.out.println(c);
}
}