1.如何在不使用到临时变量的情况下,交换两个变量的值。
public class exchange {
public static void main(String[] args) {
int a = 3;
int b = 4;
a = a ^ b;
b = a ^ b;
a = b ^ a;
System.out.println(a);
System.out.println(b);
}
}
这里用到的是一个数与另一个数进行两次异或运算的时候,得到的值还是本身。
2.如何判断一个字符串中数字,英文字母,汉字各自的数量。
import java.util.Scanner;
public class count {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
int digitCount = 0;
int chineseCount = 0;
int englishCount = 0;
for(int i = 0; i < s.length(); i++){
char ch = s.charAt(i);
if(ch <= '9' && ch >= '0'){
digitCount++;
}else if ((ch <= 'z' && ch >= 'a')||(ch <= 'Z' && ch >= 'A') ){
englishCount++;
}else{
chineseCount++;
}
}
System.out.println("数字有"+digitCount+"个,"+"汉字有"+chineseCount+"个,"+"英文字母有"+englishCount+"个。" );
}
}
3.如何使一个字符串反转过来。
import java.util.ArrayList;
import java.util.Scanner;
public class fanxu {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
ArrayList na = new ArrayList<>();
ArrayList sa = new ArrayList<>();
for(int i = 0; i<s.length(); i++){
na.add(s.charAt(i));
}
for(int l = (na.size()-1); l>=0; l--){
sa.add(na.get(l));
}
for(int i = 0; i<sa.size(); i++){
System.out.print(sa.get(i));
}
}
}
4.统计字符串中出现最多的单词数量。
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class more {
public static void main(String[] args) {
long start = System.currentTimeMillis();
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
s = s.replace('\'',' ');
s = s.replace(',',' ');
s = s.replace('.',' ');
String[] arr = s.split("\\s+");
Map<String,Integer> map = new HashMap<String,Integer>();
ArrayList<String> list = new ArrayList<String>();
for(String c: arr){
if(map.containsKey(c)){
Integer b = map.get(c);
b++;
map.put(c,b);
}else {
map.put(c,1);
list.add(c);
}
}
int Max = 0;
String Maxword = null;
for(String s1:list){
int s2 = map.get(s1);
if (s2 > Max){
Max = s2;
Maxword = s1;
}
}
long end = System.currentTimeMillis();
System.out.println("程序运行时间为"+(end-start)+"毫秒");
System.out.println("出现最多的单词为"+Maxword+","+"出现次数为"+Max+"次");
}
}
5.打印出数组中重复的元素。
public class same {
public static void main(String[] args) {
int[] arr = {1,2,3,4,3,2,6};
for(int i = 0; i<arr.length; i++){
for(int j = i+1; j<arr.length; j++){
if(arr[i] == arr[j]){
System.out.println(arr[i]);
}
}
}
}
}
6.将字符串转换成整型。
import java.util.Scanner;
import static java.lang.Character.isDigit;
public class zhuan {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
for (int i = 0; i < s.length(); i++) {
boolean a = Character.isDigit(s.charAt(i));
if(a == false){
System.out.println("该字符串非纯数字组成,无法转换成数字");
return;
}
}
int i = Integer.parseInt(s);
System.out.println(i);
}
}