检查字符串长度的可能方法是等于最后一个附加的数字。我附上了我写的任何帮助表示赞赏的代码。
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "abcd10";
String[] part = str.split("(?<=\\D)(?=\\d)");
String strPart1 = part[0];
int n = str.length();
// Traverse string from end and find the number
// stored at the end.
// x is used to store power of 10.
int num = 0, x = 1, i = n-1;
for (i=n-1; i>=0; i--) {
char c = str.charAt(i);
if ('0' <= c && c <= '9') {
num = (c - '0')*x + num;
x = x * 10;
System.out.println("true");
} else break;
}
}
}
答案 0 :(得分:1)
您可以使用Integer.parseInt(String)
与String
数组中的第二个part
(帖子中的10
)。然后检查第一个元素的长度是否匹配。像,
String[] part = str.split("(?<=\\D)(?=\\d)");
int len = Integer.parseInt(part[1]);
if (len == part[0].length()) {
System.out.printf("Yes. The length of %s is %d.%n", part[0], len);
} else {
System.out.printf("No. The length of %s(%d) is not %d.%n",
part[0], part[0].length(), len);
}
答案 1 :(得分:0)
您已经将字符串拆分为两部分,这两部分都存储在part
中。因此part[0]
应为"abcd"
而part[1]
应为"10"
。所以你需要做的就是将part[1]
转换为整数,并将该值与part[0]
的长度进行比较,如此,
int num = Integer.parseInt(part[1]);
if(num == part[0].length()){
System.out.println("true");
}
答案 2 :(得分:0)
使用计数器并在if
int digitCount = 0;
if ('0' <= c && c <= '9') {
digitCount++;
...
}
最后(在评估n之后,即发布for
循环)检查
if(num == (n-digitCount)) {
System.out.println("Yes the length is same as the number at last.");
} else ..not