1、判断一个正整数,是否对称
public class Interview {
public static void main(String[] args){
System.out.println(Symmetry.symmetry(5777));
}
}
class Symmetry {
public static String symmetry(int numb){
String result = "equal";
//整型转字符串
String str = ""+ numb;
//字符串转字符串数组
String[] strArray = str.split("");
for (int i = 0;i<strArray.length;i++){
if(!(strArray[i].equals(strArray[strArray.length-i-1]))){
result = " not equal";
break;
}
}
return result;
}
}
补充:可以使用StringBuffer中的reverse方法,然后再对两个字符串进行比较。
String str = new StringBuffer(str).reverse().toString()
2、冒泡排序
public class Interview {
public static void main(String[] args){
int[] number = {11,44,55,66,77,22};
int[] result = Bubler_Sort.bubler_Sort(number);
for (int i=0;i<result.length;i++){
System.out.print(result[i]+",");
}
}
}
class Bubler_Sort {
public static int[] bubler_Sort(int number[]){
int temp = 0;
for (int i=0;i<number.length;i++){
for (int j=0;j<number.length-1;j++){
if (number[j+1]>number[j]){
temp = number[j];
number[j] = number[j+1];
number[j+1] = temp;
}
}
}
return number;
}
}
3、要求一个文本文件中读取所有内容,查找出出现次数最多的单词
public static void main(String args[])throws Exception{
File file=new File("/Users/yuanyi/Downloads/test.txt");
BufferedReader br = new BufferedReader(new FileReader(file));
String line = null;
//定义一个map集合保存单词和单词出现的个数
TreeMap<String,Integer> tm = new TreeMap<String,Integer>();
int number =0;
String word = null;
//读取文件
while((line=br.readLine())!=null){
//大写转小写
line.toLowerCase();
//匹配任何不可见字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]
String reg1 = "\\s+";
//匹配包括下划线的任何单词字符。类似但不等价于“[A-Za-z0-9_]”,这里的"单词"字符使用Unicode字符集
String reg2 ="\\w+";
//将读取的文本进行分割
String str[] = line.split(reg1);
for(String s: str){
if(s.matches(reg2)){
//判断集合中是否已经存在该单词,如果存在则个数加一,否则将单词添加到集合中,且个数置为1
if(!tm.containsKey(s)){
tm.put(s,1);
}else{
tm.put(s,tm.get(s)+1);
}
}
}
}
for (String key:tm.keySet()){
if (tm.get(key)>number){
number = tm.get(key);
word = key;
}
}
System.out.println(word);
System.out.println(tm);
}
4、Java 中String、StringBuffer、StringBuild的区别
两个方面的区别一个是运行速度和线程安全
1)运行速度String小于StringBuffer小于StringBuild
String是字符串常量,StringBuffer、StringBuild是字符串变量。
String str="qqq";
str=str+"www";
首先第一行JVM创建了一个对象str赋值qqq,第二行JVM新创建了一个对象str把之前的str对象+www给新的str对象,然后JVM的的垃圾回收机制(GC)会把第一行的str进行回收,实际对于String来说是创建了一个新对象的过程。StringBuffer、StringBuild可以使用append的方式在原来的对象上追加。
2)StringBuffer的线程安全大于StringBuild
如果一个StringBuffer对象在字符串缓冲区被多个线程使用时,StringBuffer中很多方法可以带有synchronized关键字,所以可以保证线程是安全的,但StringBuilder的方法则没有该关键字,所以不能保证线程安全,有可能会出现一些错误的操作。所以如果要进行的操作是多线程的,那么就要使用StringBuffer,但是在单线程的情况下,还是建议使用速度比较快的StringBuilder。
3)总结
String:适用于少量的字符串操作的情况
StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况
StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况
参考:https://www.cnblogs.com/su-feng/p/6659064.html
共同学习,写下你的评论
评论加载中...
作者其他优质文章