计算字符串最后一个单词的长度,单词以空格隔开。
题目分析:字符串 最后一个单词长度 空格分开
解题思路:首先考虑输入,Scanner 类。系统输入,System.in
获取输入的字符串in.nextLine()
获取字符串最后一个单词,以空格分开,所以把字符串按照" "分割成字符串,用split函数
再用length函数获取长度即可。
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String str=in.nextLine();
String[] s=str.split(" ");//字符串分割成函数
int length=s[s.length-1].length();
System.out.println(length);
}
}
计算某字符出现次数
第一行输入一个由字母、数字和空格组成的字符串,第二行输入一个字符(保证该字符不为空格)。输出输入字符串中含有该字符的个数。(不区分大小写字母)
解图思路:先将收到的字符都转换成大写或小写,要统一转换,再比较是否一样的
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String a = in.nextLine();//接受第一行字符串
char b = in.next().charAt(0);//接受第二行字符
a=a.toLowerCase();//第一行字符串都转化成小写
if(b>='A' && b<='Z')
b = (char)(b - 'A' + 'a'); //需匹配的字符转换成小写
int j=0;
for(int i=0;i<a.length();i++){
if(a.charAt(i)==b) //.charAt()获取字符串中的每个字符
j++;
}
System.out.println(j);
}
}
进制转换
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
数据范围:保证结果在 1≤�≤231−1 1≤n≤231−1
import java.util.*;
public class Main {
private final static int BASE = 16;
private static Map<Character, Integer> map = new HashMap<Character, Integer>()
{{
put('0', 0);
put('1', 1);
put('2', 2);
put('3', 3);
put('4', 4);
put('5', 5);
put('6', 6);
put('7', 7);
put('8', 8);
put('9', 9);
put('A', 10);
put('B', 11);
put('C', 12);
put('D', 13);
put('E', 14);
put('F', 15);
put('a', 10);
put('b', 11);
put('c', 12);
put('d', 13);
put('e', 14);
put('f', 15);
}};
public static int getDecimal(String number) {
int res = 0;
for (char ch : number.toCharArray()) {
res = res * BASE + map.get(ch);
}
return res;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
String number = in.next();
int res = getDecimal(number.substring(2));
System.out.println(res);
}
}
}