我想计算String中的每个char.每个字符都会向计数器添加1,标签应添加4.
我的代码是:
int counter = 0;
for(char c : myString.toCharArray()) {
if("\t".equals(""+c)) {
counter = counter + 4;
} else {
counter++;
}
}
Run Code Online (Sandbox Code Playgroud)
我在文本编辑器中创建了很多不同的行,并将制表符空间设置为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
Run Code Online (Sandbox Code Playgroud)
我的代码正好为"第12行"计算121个字符,为"第13行"计算120个字符.对于'第14行',它计数为120,对于'第15行'为121个字符.我不知道为什么.换行被忽略.
我有一个大约500 000行的文件.每一行都有以下形式:'日期#content'.我想比较一个给定日期的日期,我曾经读过每一行,.split(' # ')把它变成a String[]并将日期与之比较if(lineString[0].equals(givenDate)){...}.既然内容不包含日期,我就可以使用了if(lineString.contains(givenDate)){...}.那么有任何优点(运行时间,效率)或我应该知道的任何困难吗?
编辑:
感谢您的答案和解释..startsWith似乎是最好的解决方案.
更新:此Qustion移动到 TableColumn应该只显示复杂数据类型的一个特定值,因为它更具体
我想填充一个Person包含复杂数据类型的表name,id并且a List<Person>.目前我得到一个表格正确name,id第三列有其他Persons 的全部信息,但它应该只显示Personss 的名称.有没有办法让我的第三列只显示Person.getName()值?
关键词,欢迎解决!非常感谢你!
编辑:代码
Person.class
public class Person {
String id;
String name;
List<Person> friends;
public String getId() {...}
public String getName() {....}
public List<Person> getFriends {...}
}
Run Code Online (Sandbox Code Playgroud)
TableView.class
public TableView<Person> createTable() {
TableColumn<Person, String> firstCol = new TableColumn<>("ID");
TableColumn<Person, String> secondCol = new TableColumn<>("Name");
TableColumn<Person, List<Person> thirdCol = new TableColumn<>("Friends");
PropertyValueFactory<Person, String> firstColFactory = new PropertyValueFactory<>( …Run Code Online (Sandbox Code Playgroud)