java基础题(5)
6.常用API
6.1string类
1.动态字符串
描述
将一个由英文字母组成的字符串转换成从末尾开始每三个字母用逗号分隔的形式。
输入描述:
一个字符串
输出描述:
修改后的字符串
示例1
输入:
hellonowcoder
输出:
h,ell,ono,wco,der
1 import java.util.Scanner; 2 3 public class Main { 4 public static void main(String[] args) { 5 Scanner scanner = new Scanner(System.in); 6 String str = scanner.next(); 7 StringBuilder newstr = new StringBuilder(str); //用原字符串创建可改变的字符串 8 for(int i = str.length() - 3; i >= 0; i -= 3){ //从末尾开始,三个三个遍历 9 newstr.insert(i, ','); //插入逗号 10 } 11 System.out.println(newstr.toString()); //转变成String类输出 12 } 13 }
2.统计字符串中字母出现的次数
描述
给定一个字符串,随机输入一个字母,判断该字母在这个字符串中出现的次数
输入描述:
任意一个字母
输出描述:
字母在字符串中出现次数
示例1
输入:
o
输出:
3
import java.util.Scanner; public class Main { public static void main(String[] args) { String string = "H e l l o ! n o w c o d e r"; Scanner scanner= new Scanner(System.in); String word = scanner.next(); scanner.close(); System.out.println(check(string, word)); } public static int check(String str, String word){ char c = word.charAt(0); //将第二个字符串用字符表示 int res = 0; for(int i = 0; i < str.length(); i++) //遍历第一个字符串 if(c == str.charAt(i)) //比较每个字符与c是否相同 res++; //相同则计数 return res; } }
6.2包装类
1.十进制数转二进制数
描述
控制台随机输入一个十进制数,请你将它转换为二进制数并输出
输入描述:
控制台随机输入的十进制正整数
输出描述:
该十进制数转换的二进制数
第一类:
1 import java.util.*; 2 3 public class Main { 4 public static void main(String[] args) { 5 Scanner scanner = new Scanner(System.in); 6 int num = scanner.nextInt(); 7 8 //write your code here...... 9 System.out.println(Integer.toBinaryString(num)); 10 11 } 12 }
第二类:
算法思想:输入一个十进制数n,每次用n除以2,把余数记下来,再用商去除以2…依次循环,直到商为0结束,把余数倒着依次排列,就构成了转换后的二进制数。
import java.util.*; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int num = scanner.nextInt(); //write your code here...... StringBuffer s = new StringBuffer(); s.append(num % 2); while((num/=2) > 0) { s.insert(0, num%2); // } System.out.println(s); } }
6.3数学工具
1.扔骰子游戏
描述
开发一个掷骰子游戏,即每次运行程序时,产生一个[1,6]之间的随机整数(关于seed的问题可以参考题解)。
输入描述:
随机数种子
输出描述:
[1,6]之间的随机整数
示例1:输入:100 输出:2
import java.util.Random; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNextInt()) { int seed = scanner.nextInt(); Random random = new Random(seed); //write your code here...... System.out.println(random.nextInt(6) + 1); } } }
2.求绝对值,平方根,对数,正弦值
描述
编写函数求出任意数的绝对值,平方根,对数,正弦值
输入描述:
任意数字
输出描述:
任意数的绝对值,平方根,对数,正弦值(请直接使用Math类的方法进行运算,不考虑精度问题)
示例1
输入:
4
输出:
4.0 2.0 1.3862943611198906 -0.7568024953079282
1 import java.util.Scanner; 2 public class Main { 3 public static void main(String[] args) { 4 Scanner scanner=new Scanner(System.in); 5 double num = scanner.nextDouble(); 6 //write your code here...... 7 System.out.println(Math.abs(num)); 8 System.out.println(Math.sqrt(num)); 9 System.out.println(Math.log(num)); 10 System.out.println(Math.sin(num)); 11 } 12 }