如何只获得某些字符的单次出现?
How to get single occurrences of only certain characters?
我有以下代码来选择找到任何两个相邻的相同字母并删除一个。
例如:singleOccurrence("1//2/2018")
我的代码:
public static StringBuilder singleOccurrence(String s) {
StringBuilder sb = new StringBuilder();
if (s.length() > 0) {
char prev = s.charAt(0);
sb.append(prev);
for (int i = 1; i < s.length(); ++i) {
char cur = s.charAt(i);
if (cur != prev) {
sb.append(cur);
prev = cur;
}
}
}
return sb;
}
这将 return:“1/2/2018”
但是,如果我输入:singleOccurrence("11//2/2018")
它会 return: "1/2/2018"
请注意,我的方法删除了所有字符的两次出现。
我的问题是如何让我的方法只执行它应该对字符执行的操作 "/", "-", ":"
提前致谢:)
将此添加到您的 if 语句中。检查 prev & cur 字符是否不是 '-' '/' 或 ':' 附加到结果。
if (cur != prev || (cur != '-' || cur != '/' || cur != ':'))
{
sb.append(cur);
prev = cur;
}
public void singleOccurrence(String string)
{
char[] chars = string.toCharArray();
List<Character> characters = new ArrayList<>();
char temp = 0;
for (char c : chars) {
if (temp != c || (c != '/' && c != '_' && c != ':')) {
characters.add(c);
}
temp = c;
}
StringBuilder sb = new StringBuilder();
for (Character character : characters) {
sb.append(character);
}
Log.e(TAG, sb.toString());
}
希望对您有所帮助!
我有以下代码来选择找到任何两个相邻的相同字母并删除一个。
例如:singleOccurrence("1//2/2018")
我的代码:
public static StringBuilder singleOccurrence(String s) {
StringBuilder sb = new StringBuilder();
if (s.length() > 0) {
char prev = s.charAt(0);
sb.append(prev);
for (int i = 1; i < s.length(); ++i) {
char cur = s.charAt(i);
if (cur != prev) {
sb.append(cur);
prev = cur;
}
}
}
return sb;
}
这将 return:“1/2/2018”
但是,如果我输入:singleOccurrence("11//2/2018")
它会 return: "1/2/2018"
请注意,我的方法删除了所有字符的两次出现。
我的问题是如何让我的方法只执行它应该对字符执行的操作 "/", "-", ":"
提前致谢:)
将此添加到您的 if 语句中。检查 prev & cur 字符是否不是 '-' '/' 或 ':' 附加到结果。
if (cur != prev || (cur != '-' || cur != '/' || cur != ':'))
{
sb.append(cur);
prev = cur;
}
public void singleOccurrence(String string)
{
char[] chars = string.toCharArray();
List<Character> characters = new ArrayList<>();
char temp = 0;
for (char c : chars) {
if (temp != c || (c != '/' && c != '_' && c != ':')) {
characters.add(c);
}
temp = c;
}
StringBuilder sb = new StringBuilder();
for (Character character : characters) {
sb.append(character);
}
Log.e(TAG, sb.toString());
}
希望对您有所帮助!