来源
2022年浙江大华编程题。
题目
分析
-
在java中,一个char类型的对象占2个字节,因此单个字符的中文和英文都可以用一个char表示出来。例如,在c++中,一个char的大小是一个字节,要存储中文字符“中”,则需要用字符串方式存储,即
string str = "中"
,而在java中,可以只用一个char就能储存这个“中”字,即char c = '中'
。 -
在这个题目中,我们认为,在目标字符串中,除了中文字符就是英文字母(小写和大写)。
程序
语言:java
package main.java;
import java.io.*;
public class Solution01 {
public static void main(String[] args) throws IOException {
System.out.println(strTrim("大da华hua", 3));
System.out.println(strTrim("大da华hua", 5));
}
public static String strTrim(String str, int num){
String res = "";
int cnts = 0;
for (char c : str.toCharArray()) {
if ((c >= 'A' && c<= 'Z') || (c >= 'a' && c <= 'z'))
cnts ++;
else
cnts += 2;
if (cnts == num){
res += c;
break;
}else if(cnts < num){
res += c;
}else{
break;
}
}
return res;
}
}