Java学习总结第三十五天Java笔试题(四)

这篇博客总结了七个Java编程问题,包括按字节截取字符串保证汉字完整,字符串大小写转换,字符串拼接,获取字符串首尾字符,输出日历,计算日期间隔以及使用Math类的方法。示例代码涵盖了String和Calendar类的重要操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);

}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值