java面试题网

普通会员

257

帖子

9

回复

131

积分

楼主
发表于 2018-03-26 17:31:15 | 查看: 1904| 回复: 0

java几个常用方法

 


字符串

 

1、获取字符串的长度

 

length()

 

、判断字符串的前缀或后缀与已知字符串是否相同前缀 startsWith(String s)

 

后缀 endsWith(String s)

 

3、比较两个字符串 equals(String s)

 

4、把字符串转化为相应的数值 int  Integer.parseInt(字符串) long  Long.parseLong(字符串)

 

float  Folat.valueOf(字符串).floatValue() double  Double.valueOf(字符串).doubleValue()

 

4、将数值转化为字符串valueOf(数值)

 

5、字符串检索

 

indexOf(Srting s) 从头开始检索

 

indexOf(String s ,int startpoint)  startpoint 处开始检索如果没有检索到,将返回-1

 

6、得到字符串的子字符串

 

substring(int startpoint)  startpoint 处开始获取 substring(int start,int end)  start  end 中间的字符

 

7、替换字符串中的字符,去掉字符串前后空格

 

replace(char old,char new)  new 替换 old

 

trim()

 

8、分析字符串

 

StringTokenizer(String s) 构造一个分析器,使用默认分隔字符(空格,换行,回车,Tab,进纸符) StringTokenizer(String s,String delim) delim 是自己定义的分隔符

 

nextToken() 逐个获取字符串中的语言符号

 

boolean hasMoreTokens() 只要字符串还有语言符号将返回 true,否则返回 false countTokens() 得到一共有多少个语言符号

 

 

 

Java 中的鼠标和键盘事件

 

1、使用 MouseListener 借口处理鼠标事件

 

鼠标事件有 5 种:按下鼠标键,释放鼠标键,点击鼠标键,鼠标进入和鼠标退出鼠标事件类型是 MouseEvent,主要方法有:

 

getX(),getY() 获取鼠标位置

 

getModifiers() 获取鼠标左键或者右键

 

getClickCount() 获取鼠标被点击的次数


 

getSource() 获取鼠标发生的事件源

 

事件源获得监视器的方法是 addMouseListener(),移去监视器的方法是 removeMouseListener() 处理事件源发生的时间的事件的接口是 MouseListener 接口中有如下的方法 mousePressed(MouseEvent) 负责处理鼠标按下事件 mouseReleased(MouseEvent) 负责处理鼠标释放事件

 

mouseEntered(MouseEvent) 负责处理鼠标进入容器事件

 

mouseExited(MouseEvent) 负责处理鼠标离开事件

 

mouseClicked(MouseEvent) 负责处理点击事件

 

2、使用 MouseMotionListener 接口处理鼠标事件

 

事件源发生的鼠标事件有 2 种:拖动鼠标和鼠标移动

 

鼠标事件的类型是 MouseEvent

 

事件源获得监视器的方法是 addMouseMotionListener()

 

处理事件源发生的事件的接口是 MouseMotionListener 接口中有如下的方法

 

mouseDragged() 负责处理鼠标拖动事件

 

mouseMoved() 负责处理鼠标移动事件

 

3、控制鼠标的指针形状

 

setCursor(Cursor.getPreddfinedCursor(Cursor.鼠标形状定义)) 鼠标形状定义见(书 P 210

 

4、键盘事件

 

键盘事件源使用 addKeyListener 方法获得监视器

 

键盘事件的接口是 KeyListener 接口中有 3 个方法

 

public void keyPressed(KeyEvent e) 按下键盘按键

 

public void keyReleased(KeyEvent e) 释放键盘按键

 

public void keyTypde(KeyEvent e) 按下又释放键盘按键

 

 

判断字符是否属于中文

 

public class IsChineseOrEnglish {

 

GENERAL_PUNCTUATION 判断中文的

 

CJK_SYMBOLS_AND_PUNCTUATION 判断中文的。号

 

HALFWIDTH_AND_FULLWIDTH_FORMS 判断中文的,号 public static boolean isChinese(char c) {

 

Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);

 

if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS

 

ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS

 

ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A

 

ub == Character.UnicodeBlock.GENERAL_PUNCTUATION

 

ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION

 

ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS){ return true;

 

}

 

return false;

 

}

 

public static void isChinese(String strName) {

 

char[] ch = strName.toCharArray();

 

for (int i = 0; i < ch.length; i++) {

 

char c = ch[i];

 

if(isChinese(c)==true){

 

System.out.println(isChinese(c));

 

return;

 

}else{

 

System.out.println(isChinese(c));

 

return ;

 

}

 

}

 

}

 

 

public static void main(String[] args){

isChinese("zhongguo");

 

isChinese("中国");

 

}

 

 

}

 

 

去掉字符串中重复的子字符串

 

 

/**

 

去掉字符串中重复的子字符串

 

@param str

 

@return String

 

*/

 

private static String removeSameString(String str)

 

{

 

Set<String> mLinkedSet = new LinkedHashSet<String>(); String[] strArray = str.split(" "); StringBuffer sb = new StringBuffer();

 

for (int i = 0; i < strArray.length; i++)

 

{

 

if (!mLinkedSet.contains(strArray[i]))

 

{

 

mLinkedSet.add(strArray[i]);

 

sb.append(strArray[i] + " ");

 

}

 

}

 

System.out.println(mLinkedSet);

 

return sb.toString().substring(0, sb.toString().length() - 1);

 

}

 

 

将指定 byte 数组以 16 进制的形式打印到控制台

 

 

/**

 

将指定 byte 数组以 16 进制的形式打印到控制台

 

 

@param hint   String

 

@param  byte[]

 

@return void

 

*/

 

public static void printHexString(String hint, byte[] b)

 

{

 

System.out.print(hint);

 

for (int i = 0; i < b.length; i++)

 

{

 

String hex = Integer.toHexString(b[i] & 0xFF);

 

if (hex.length() == 1)

 

{


 

hex = '0' + hex;

 

}

 

System.out.print(hex.toUpperCase() + " ");

 

}

 

System.out.println("");

 

}

 

 

获得任意一个整数的阶乘,递归

 


/**

 

获得任意一个整数的阶乘,递归

 

@param n

 

@return n!

 

*/

 

public static int factorial(int n)

 

{

 

if (n == 1)

 

{

 

return 1;

 

}

 

return n * factorial(n - 1);

 

}

 

 

拷贝一个目录或者文件到指定路径下

 


/**

 

拷贝一个目录或者文件到指定路径下

 

@param source

 

@param target

 

*/

 

public static void copy(File source, File target)

 

{

 

File tarpath = new File(target, source.getName());

 

if (source.isDirectory())

 

{

 

tarpath.mkdir();

 

File[] dir = source.listFiles();

 

for (int i = 0; i < dir.length; i++) { copy(dir[i], tarpath); } } else

 

{

 

try

 

{

 

InputStream is = new FileInputStream(source);

 

OutputStream os = new FileOutputStream(tarpath);

 

byte[] buf = new byte[1024];

 

int len = 0;

 

while ((len = is.read(buf)) != -1)

 

{

 

os.write(buf, 0, len);

 

}

 

is.close();

 

os.close();

 

}

 

catch (FileNotFoundException e)

 

{

 

e.printStackTrace();

 

}

 

catch (IOException e)

 

{

 

e.printStackTrace();

 

}

 

}

 

}

 

 

简单的 txt 转换 xml


package cn.wuliaokankan;

 

import java.io.BufferedReader;

 

import java.io.BufferedWriter;

 

import java.io.FileReader;

 

import java.io.FileWriter;

 

import java.util.StringTokenizer;

 

 

public class TxtToXml {

 

private String strTxtFileName;

 

private String strXmlFileName;

 

public TxtToXml() {

 

strTxtFileName = new String();

 

strXmlFileName = new String();

 

}


 

public void createXml(String strTxt, String strXml) {

 

strTxtFileName = strTxt;

 

strXmlFileName = strXml;

 

String strTmp;

 

try {

 

BufferedReader inTxt = new BufferedReader(new FileReader( strTxtFileName)); BufferedWriter outXml = new BufferedWriter(new FileWriter(

 

strXmlFileName));

 

outXml.write("<?xml version= \"1.0\" encoding=\"gb2312\"?>");

 

outXml.newLine();

 

outXml.write("<people>");

 

while ((strTmp = inTxt.readLine()) != null) {

 

StringTokenizer strToken = new StringTokenizer(strTmp, "");

 

String arrTmp[];

 

arrTmp = new String[3];

 

for (int i = 0; i < 3; i++)

 

arrTmp[i] = new String("");

 

int index = 0;

 

outXml.newLine();

 

outXml.write(" <students>");

 

while (strToken.hasMoreElements()) {

 

strTmp = (String) strToken.nextElement();

 

strTmp = strTmp.trim();

 

arrTmp[index++] = strTmp;

 

}

 

outXml.newLine();

 

outXml.write("

<name>" + arrTmp[0] + "</name>");

outXml.newLine();

outXml.write("

<sex>" + arrTmp[1] + "</sex>");

outXml.newLine();

outXml.write("

<age>" + arrTmp[2] + "</age>");

outXml.newLine();

outXml.write("

</students>");

 

}

 

outXml.newLine();

 

outXml.write("</people>");

 

outXml.flush();

 

catch (Exception e) { e.printStackTrace();

 

}

 

}

 

 

public static void main(String[] args) {

 

String txtName = "testtxt.txt";

 

String xmlName = "testxml.xml";

 

TxtToXml thisClass = new TxtToXml();

 

thisClass.createXml(txtName, xmlName);

 

}

 

}

 

 

字母排序(A-Z)(先大写,后小写)


import java.util.Arrays;

 

import java.util.Comparator;

 

public class SortTest

 

{

 

public static void main(String args[])

 

{

 

char[] chs = {'f', 'F', 'K', 'A', 'a', 'j', 'z'};

 

chs = sortChars(chs, false);

for(char c: chs)

{

 

System.out.println(c);

 

}

 

}

 

 

/**

 

对给定的字符数组进行字典排序

 

@param chs 目标字符数组

 

@param upperFisrt 大写字母是否在前

 

@return 排序后的字符数组

 

*/

 

public static char[] sortChars(char[] chs, final boolean upperFisrt)

 

{

 

Character[] srcArray = new Character[chs.length];

 

char[] retArray = new char[chs.length];

 

int index = 0;

 

for(char ch: chs)

 

{

srcArray[index++] = ch;

 

}

 

Arrays.sort(srcArray, new Comparator<Character>()

 

{

public int compare(Character c1, Character c2)

 

{

 

char ch1 = Character.toUpperCase(c1);

 

char ch2 = Character.toUpperCase(c2);

 

if(ch1 == ch2)

 

{

 

int tempRet = c1.charValue() - c2.charValue();

 

return upperFisrt? tempRet: -tempRet;

 

}

 

else

 

{

 

return ch1 - ch2;

 

}

 

}

 

});

 

 

index = 0;

 

 

for(char ch: srcArray)

 

{

 

retArray[index++] = ch;

 

}

 

 

return retArray;

 

}

 

}

 

 

列出某文件夹及其子文件夹下面的文件,并可根据扩展名过滤

 

/**

 

列出某文件夹及其子文件夹下面的文件,并可根据扩展名过滤

 

@param path

 

*/

 

public static void list(File path)

 

{

 

if (!path.exists())

 

{

 

System.out.println("文件名称不存在!");

 

}

 

else

 

{


 

if (path.isFile())

 

{

 

if (path.getName().toLowerCase().endsWith(".pdf")

 

path.getName().toLowerCase().endsWith(".doc")

 

path.getName().toLowerCase().endsWith(".html")

 

path.getName().toLowerCase().endsWith(".htm"))

 

{

 

System.out.println(path);

 

System.out.println(path.getName());

 

}

 

}

 

else

 

{

 

File[] files = path.listFiles();

 

for (int i = 0; i < files.length; i++)

 

{

 

list(files[i]);

 

}

 

}

 

}

 

}

 

 

字符串匹配的算法

 

public String getMaxMatch(String a,String b) {

 

StringBuffer tmp = new StringBuffer();

 

String maxString = "";

 

int max = 0;

 

int len = 0;

 

char[] aArray = a.toCharArray();

 

char[] bArray = b.toCharArray();

 

int posA = 0;

 

int posB = 0;

 

while(posA<aArray.length-max) {

 

posB = 0;

 

while(posB<(bArray.length-max)) {

 

if(aArray[posA]==bArray[posB]) {

 

len = 1;

 

tmp = new StringBuffer();

 

tmp.append(aArray[posA]);

 

                  while((posA+len<aArray.length)&&(posB+len<bArray.length)&&(aArray[posA+len]==bArray[posB+len]))

 

                      {

 

tmp.append(aArray[posA+len]);

 

len++;

 

}

 

if(len>max) {

 

max = len;

 

maxString = tmp.toString();

 

}

 

}

 

posB++;

 

}

 

posA++;

 

}

 

return maxString;

 

}

 



您需要登录后才可以回帖 登录 | 立即注册

java面试题网无聊看看网与java建站系统提供技术支持V2.1 网站地图 © 2016-2018