J2SE中的一些基础问题总结(不断更新)
来源:互联网 发布:sql必知必会怎么样 编辑:程序博客网 时间:2024/06/13 03:22
int[] arr={1,2,3,4,5};
1.请问怎么转成list?
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
int[] arr={1,2,3,4,5};
List<Integer> li = new ArrayList<Integer>();
for(int i = 0; i < arr.length; i++) {
li.add(arr[i]);
}
for(Integer temp : li) {
System.out.print(temp + " ");
}
}
}
2.String s=“aa我123自中华人民共和国”写一个函数returnStr(int maxByte,String s)
要求按着输入的字节数取出随机给定的字符串,如果字节为单数(取到的正好是半个汉字)就忽略
returnStr(1, s) 应该为:a
returnStr(2, s) aa
returnStr(3, s) aa
returnStr(4, s) aa我
returnStr(5, s) aa我1
以此类推。。。。。。
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
String s = "aa我123自中华人民共和国";
String result = returnStr(13, s);
System.out.println(result);
}
private static String returnStr(int maxByte, String s) {
byte[] b = s.getBytes();//字符串转化为字节数组
byte[] temp = new byte[2];//临时字节数组
String result = "";//结果字符串
int i = 0;
boolean flag = true;//标志位,防止漏掉字节
while(i < maxByte){//字节数组循环
flag = true;
if(b[i] >= 0 && b[i] <= 255){//0-255说明是单字节
result += (char)b[i];//加入结果字符串中
i++;
}else if((i + 1 < maxByte) //不是单字节,如果下一位没有超出范围,并且也不是单字节
&& (b[i+1] < 0 || b[i+1] > 255)){//组成一个汉字
temp[0] = b[i];//临时字节数组赋值
temp[1] = b[i+1];
result += new String(temp);//组成一个汉字,并加入字符串
flag = false;//如果进来执行过,标志位为假
i += 2;//跳过一个字节
}
/*
* 当汉字的半个字节是最后一位时,此时 i+1==maxByte
* 上面 i+=2 不会执行造成死循环
* 所以在这跳出循环
*
* 但else if 满足条件 执行 i+=2 后
* 可能 i+1 == maxByte 这样就漏掉一个字节
* 所以用标志位来判断是否进入else if
* 来判断是否执行这一句
*/
if(i + 1 == maxByte && flag) {
break;
}
}
return result;
}
}
3.java 中能“重新抛出异常”如:
. . .
catch(Exception e) {
System.out.println("An exception was thrown");
throw e;
}
既然最后还是重新抛出了,为什么之前要去try...catch它呢?这样重新抛出一下有什么好处呢?
重新抛出意味这我可能需要在这里做一些处理,但是这样的处理并不能解决出现的异常,还需要外部来捕获这个异常.
比如你的代码中,当出现异常后,首先要输出一句话表示异常产生(这里就是我要做的处理,当然实际中可能需要更复杂的处理比如数据库回滚之类的),但是同时这个异常不能被我吞掉,我需要继续将他抛出,让外面继续捕获这个异常
4.java如何将字符串保存在数组中,然后输出
public class numTest {
public static void main(String args[]) {
String str = "aaa";
char [] strArr = str.toCharArray();
for(int i = 0;i<strArr.length;i++) {
System.out.println("output:" + strArr[i]);
}
}
}
4. 我试了下, 确实是这样. 比如String str = "bcd你好";
则char ch = str.charAt(2)返回"d"
char ch = charAt(3)返回"你"
这是为什么啊, 难道是UNICODE编码方式存放的, 字母汉字都占二字节.
而charAt是返回一个UNICODE字符. 但charAt返回值明明是char啊. 这是为什么啊?
一、Java中char类型采用Unicode编码,一个字符占两个字节,并且这是确定的,不会随硬件架构的变化而变化;
二、charAt(int index)返回的是处在index位置的字符,index从0开始;
三、'i'和'爱'这两个分别是一个字符,都是占两个字节;
5. String a = "我";
String b = "是";
String c = "人";
String d = a + b + c;
System.out.print(d);
/* output
我是人
请问如何改变或者通过一定的转换让b的值变成一个空字符? 前提是在转换前b 是一个String
我想输出
public class testkongge {
String a ="我";
String b ="是";
String c = "人";
String d=a+b+c;
public static void main(String[] args) {
testkongge test = new testkongge();
System.out.print(test.d.replace("是",""));
}
}
6.如何在硬盘上创建一个file文件?
import java.io.File;
import java.io.IOException;
public class Testcreatfile {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
File file = new File("D:/test.txt");
file.createNewFile();
System.out.println("创建成功");
}
}
7.如何使一个由frame类构成的窗口,按住右上角的“X”按钮,关闭窗口。使用什么的函数,最好是frame类的。大家有什么想法?
import java.awt.*;
public class BorderLayoutEx{
public static void main(String[] args){
Frame f ;
Button b1,b2,b3,b4,b5;
f = new Frame("BorderLayoutEx");
f.setLayout(new BorderLayout());
b1 = new Button("North");
b2 = new Button("South");
b3 = new Button("East");
b4 = new Button("West");
b5 = new Button("Center");
f.add("North",b1);
f.add("South",b2);
f.add("East",b3);
f.add("West",b4);
f.add("Center",b5);
f.setSize(200,200);
f.setVisible(true);
}
}
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class BorderLayoutEx{
public static void main(String[] args){
Frame f ;
Button b1,b2,b3,b4,b5;
f = new Frame("BorderLayoutEx");
f.setLayout(new BorderLayout());
b1 = new Button("North");
b2 = new Button("South");
b3 = new Button("East");
b4 = new Button("West");
b5 = new Button("Center");
f.add("North",b1);
f.add("South",b2);
f.add("East",b3);
f.add("West",b4);
f.add("Center",b5);
f.setSize(200,200);
f.addWindowListener(new WindowAdapter(){ //使用内部类 用WindowAdapter这个类
public void windowClosing(WindowEvent e){ //使用windowClosing这个方法
System.exit(0);
}
});
f.setVisible(true);
}
}
- J2SE中的一些基础问题总结(不断更新)
- cuda一些小问题(不断更新)
- Linux基础命令总结(不断更新...)
- MATLAB 常用问题总结(不断更新中)
- 【java基础】J2SE视频总结
- 【Java基础】--J2SE深度总结
- 一些技巧(不断更新)
- 一些名词(不断更新)
- 总结Java的一些隐蔽的知识点(不断更新)
- 总结一些使用visual studio的tips(不断更新)
- 极化SAR一些常用知识总结(不断更新中)
- 网页中的一些Javascript的小技巧(不断更新中)
- 一些开发或使用软件过程中的经验(不断更新)
- 遇到的一些问题及解决方法(不断更新)
- 使用elasticsearch遇到的一些问题以及解决方法(不断更新)
- 排序问题(不断总结,不断更新)
- 阶段总结(不断更新)
- MFC中的经验小技巧总结(不断更新中~~~~)
- java 判断对象是否为空或者传入集合对象的是否为空,以及判断数组的长度
- 少一点张扬,多一点谦虚;少一点英雄主义,多一点实事求是——读2008第11期《IT经理世界》
- MSSQL中简单的时间处理
- 高德纳访谈录
- 继IE8Beta2版之后,微软发布IE8的新版本,IE8 Partner Build
- J2SE中的一些基础问题总结(不断更新)
- 为什么效果出不来啊?
- 今天又看了下快速排序顺便写下了代码
- 用IPFW实现BSD防火墙
- 破解flashFXP密码全过程
- C#中对象串行化技术的探讨
- 面向对象设计模式与原则
- VMWare 6 and linux(Ubuntu): vmmon compile error
- 两款极其优秀的脚本工具调试工具