gpt4 book ai didi

java - 计算 String 中的字符不适用于制表符 ('\t' )。我使用错误的方法吗?

转载 作者:搜寻专家 更新时间:2023-10-31 20:19:13 26 4
gpt4 key购买 nike

我想计算字符串中的每个字符。每个字符加 1 到计数器,制表符应加 4。

我的代码是:

int counter = 0;
for(char c : myString.toCharArray()) {
if("\t".equals(""+c)) {
counter = counter + 4;
} else {
counter++;
}
}

我在文本编辑器中制作了很多不同的行,并将制表符空间设置为 4。带有字符和数字的行没有问题。只要我在中间添加几个制表符,结果总是大 1。我的编辑器说该行长 100 个字符,但我的代码计数为 101。一行中有 2 个或 20 个制表符并不重要。它总是 1 太多了。

有什么想法或更好的解决方案吗?也许使用的方法会导致这种行为?

编辑:我的测试线:

Line 12: 121 characters ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
Line 13: 120 characters dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
Line 14: 119 characters with tabs kkk
Line 15: 120 characters with tabs lkkk

我的代码准确计算出“第 12 行”有 121 个字符,“第 13 行”有 120 个字符。对于“第 14 行”,它计数为 120 个字符,对于“第 15 行”,它计数为 121 个字符。我不知道为什么。换行符被忽略。

最佳答案

好吧,我复制了你的代码并执行了一次,我找不到任何错误。

我尝试了以下代码:-

import java.util.Scanner;
public class Alpha{
public static void main(String[] args){
int counter = 0;
Scanner s= new Scanner(System.in);
System.out.println("Enter a String :- ");
String myString=s.nextLine();
for(char c : myString.toCharArray()) {
System.out.println(c);
if("\t".equals(""+c)) {
counter = counter + 4;
}
else {
counter++;
}
}
System.out.println("Counter="+counter);
}
}

而且,我每次都收到正确的输出。

收到样本输出:-

Ram is/t              //  Comment---> /t represents tab-hit after "is" word

R
a
m

i
s

Counter=10

所以,对我来说,它正在正确评估。请检查您的输入(换行符/回车符是否也被计算在内)。祝你好运。

关于java - 计算 String 中的字符不适用于制表符 ('\t' )。我使用错误的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29869147/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com