我试图解决的另一个问题(注意,这不是家庭作业,而是我脑海中突然出现的问题),我正在努力提高我在 Java 中解决问题的能力。我想显示这个:
学生 ID #
卡罗尔·麦凯恩 920 11
詹姆斯·埃里奥尔 154 10 伊莱妮·布莱克 462 12
我想做的是在第三列上,显示字符数而不计算空格。给我一些提示来做到这一点。或者指出Java的健壮API,因为我还不熟悉Java的字符串API。谢谢。
听起来你只是想要这样的东西:
public static int countNonSpaces(String text) {
int count = 0;
for (int i = 0; i < text.length(); i++) {
if (text.charAt(i) != ' ') {
count++;
}
}
return count;
}
您可能希望修改此设置以使用 Character.isWhitespace
,而不是仅检查' '
。另请注意,这会将基本多语言平面之外的对计为两个字符。这是否会成为您的问题取决于您的用例......
将解决问题和将答案呈现为两个截然不同的步骤。 我不会帮助您在表格中进行演示,但是要计算字符串(不带空格)中的字符数,您可以使用以下内容:
String name = "Carol McKane";
int numberOfCharacters = name.replaceAll("\s", "").length();
正则表达式 \s
匹配name
字符串中的所有空格字符,并将它们替换为 ""
或 nothing。
可能是最短和最简单的方法:
String[][] students = { { "Carol McKane", "James Eriol", "Elainee Black" }, { "920", "154", "462" } };
for (int i = 0 ; i < students[0].length; i++) {
System.out.println(students[0][i] + "t" + students[1][i] + "t" + students[0][i].replace( " ", "" ).length() );
}
replace(),替换字符串的每个子字符串 (" ") 并将其从返回的结果中删除,从这个临时字符串中,没有空格,您可以通过在其上调用 length() 来获取长度...字符串名称将保持不变。
http://docs.oracle.com/javase/7/docs/api/java/lang/String.html
干杯
要了解更多信息,您应该观看字符串和字符的 API 文档
这里有一些示例如何做:
// variation 1
int count1 = 0;
for (char character : text.toCharArray()) {
if (Character.isLetter(character)) {
count1++;
}
}
这使用"for"指令的特殊缩写。以下是便于理解的长表格:
// variation 2
int count2 = 0;
for (int i = 0; i < text.length(); i++) {
char character = text.charAt(i);
if (Character.isLetter(character)) {
count2++;
}
}
顺便说一句,通过替换方法删除空格对我来说不是一种好的编码风格,对于理解字符串类的工作原理也不是很有帮助。