
import javaioBufferedInputStream;
import javaioBufferedOutputStream;
import javaioFile;
import javaioFileInputStream;
import javaioFileNotFoundException;
import javaioFileOutputStream;
import javaioIOException;
public class Test {
public static void main(String[] args) {
BufferedOutputStream out = null;
try {
out = new BufferedOutputStream(new FileOutputStream(new File("d:/infotxt")));
String line = "第一行文本\n第二行文本";
outwrite(linegetBytes());
} catch (FileNotFoundException e) {
eprintStackTrace();
} catch (IOException e) {
eprintStackTrace();
} finally {
if (out != null) {
try {
outclose();
} catch (IOException e) {
eprintStackTrace();
}
}
}
BufferedInputStream in = null;
try {
in = new BufferedInputStream(new FileInputStream("d:/infotxt"));
StringBuffer buffer = new StringBuffer();
byte[] buff = new byte[inavailable()];
while (inread(buff) != -1) {
bufferappend(new String(buff));
}
Systemoutprintln(buffer);
} catch (FileNotFoundException e) {
eprintStackTrace();
} catch (IOException e) {
eprintStackTrace();
} finally {
if (in != null) {
try {
inclose();
in = null;
} catch (IOException e) {
eprintStackTrace();
}
}
}
}
}
;
StringBuilder 结合了字符数组和字符串的好些优点,所以实现大整数类的时候如果利用 StringBuilder 可以省掉不少功夫,比如:
import javautil;
class SPBI { // SimplePositiveBigInteger 的缩略
public static void main(String[] args) {
try {
Systemoutprintln("输入两个 30 位数以内的正整数和一个符号('+' 或 ''):");
Scanner scn = new Scanner(Systemin);
SPBI a = new SPBI(scnnextLine()trim()),
b = new SPBI(scnnextLine()trim());
String operator = scnnextLine()trim();
if (atoString()length() > 30 || btoString()length() > 30)
throw new Exception("至少有一个整数超过 30 位数");
if ( ! operatormatches("\\+|\\"))
throw new Exception("此程序不支持的符号:" + operator);
Systemoutprintln(
"\n\n" +
atoStringWithDigitGrouping() + operator + "\n" +
btoStringWithDigitGrouping() + "\n" +
"------------------------------ \n");
if (operatorequals("+"))
Systemoutprintln(aadd(b)toStringWithDigitGrouping());
else
Systemoutprintln(amultiply(b)toStringWithDigitGrouping());
} catch (Exception ex) {
Systemoutprintln("错误:" + exgetMessage() + "。请重试。");
}
}
// 此 SBPI 所代表的整数(注:个位数在左端)
private StringBuilder reversedDigits;
// 唯一的构造器
public SPBI(String spbi) {
if ( ! spbimatches("\\d+"))
throw new IllegalArgumentException(spbi + " 不符合正整数格式");
reversedDigits = new StringBuilder(spbi)reverse();
normalize();
}
// 去掉这个 SPBI 中多余的前导零(全在 reversedDigits 的右端)
private void normalize() {
reversedDigits = new StringBuilder(reversedDigitstoString()replaceAll("(<!^)0+$", ""));
}
public String toString() {
return "" + new StringBuilder(reversedDigits)reverse();
}
// 除了在返回的字符串中加入了千位分组符外,跟 toString() 没差别
public String toStringWithDigitGrouping() {
return "" + new StringBuilder(reversedDigitstoString()replaceAll("{3}(!$)", "$0,"))reverse();
}
// 加法 *** 作(等于 this += that 然后返回 this)
public SPBI add(SPBI that) {
int maxLength = Mathmax(reversedDigitslength(), thatreversedDigitslength());
reversedDigitssetLength(maxLength); // 可能造成 reversedDigits 的右端被填入 '\0'
int carry = 0;
for (int i = 0; i < reversedDigitslength(); i++) {
int digitOfThis = reversedDigitscharAt(i) != '\0' reversedDigitscharAt(i) - '0' : 0,
digitOfThat = i < thatreversedDigitslength() thatreversedDigitscharAt(i) - '0' : 0,
sum = digitOfThis + digitOfThat + carry;
carry = sum > 9 1 : 0;
reversedDigitssetCharAt(i, (char) (sum % 10 + '0'));
}
reversedDigitsappend(carry);
normalize();
return this;
}
// 乘法 *** 作(等于 this = that 然后返回 this)
public SPBI multiply(SPBI that) {
SPBI multiplesOfTenOfOriginalThis = new SPBI(toString());
reversedDigits = new StringBuilder("0"); // this 归零
for (int iThat = 0; iThat < thatreversedDigitslength(); iThat++) {
for (int addCount = 0; addCount < thatreversedDigitscharAt(iThat) - '0'; addCount++)
add(multiplesOfTenOfOriginalThis);
multiplesOfTenOfOriginalThisreversedDigitsinsert(0, 0); // 乘 10
}
return this;
}
}
public static void main(String args[]){
String s1="Java";
int n=s1length(); //得到s1这个字符串变量的长度
Systemoutprint("n="+n);
char m=s1charAt(2); //得到s1变量中第三个字符
Systemoutprintln(" s1="+s1);
}//n=4 s1=Java
2.以下程序的输出结果为 123 。
class Test{
static int num; //定义一个静态变量
int c;
public Test( ){
num++;}
public static void main(String[ ] args){
Test x1=new Test();
Systemoutprint(x1num);
Test x2=new Test();
Systemoutprint(x2num);
Test x3=new Test();
Systemoutprintln(x3num);//获得x3对象中num属性的值 3
}}
3、以下程序的输出结果为 Inside main() Mug(1) c1 initialized Mugs() 。
class Mug {
Mug(int marker) {
Systemoutprintln("Mug(" + marker + ")"); }
void f(int marker) {
Systemoutprintln("f(" + marker + ")"); }}
public class Mugs {
Mug c1;
{ c1 = new Mug(1); //实例化对象c1
Systemoutprintln("c1 initialized"); }
Mugs() { Systemoutprintln("Mugs()"); }
public static void main(String[] args) {
Systemoutprintln("Inside main()");
Mugs x = new Mugs();//实例化x
}}
4、以下程序的输出结果为 AB 。
class A{
public A(){
Systemoutprint(“ A ”);
}}
public class B extends A{//类B继承类A
public B(){
Systemoutprint(“ B ”);
}
public static void main(String[ ] args){
new B( );//初始化一个类B的临时变量
}}
.public class AboutThreeNum
{public static void main(String[ ] args)
{ Systemoutprintln( fun(-8, 50, 23) ); }
static int fun(int x, int y, int z) //静态函数fun,属于这个类,而不是单个对象
{ return fun( x, fun(y,z) ); }
static int fun(int x,int y)
{ if(x>y) return x; //当x>y时,返回x的值
else return y; }}
结果 50
以上就是关于java程序设计题全部的内容,包括:java程序设计题、有些难度的java编程题、有关java的编程问题 1. 阅读以下程序,在指定语句后加上注释并写出运行结果。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)