java - 给定一个字符串/文本,我如何从给定的字符串/文本中获取每对字母?
问题描述
给定一个字符串,我如何获取每对字母?
这是一个例子,给定 string = "asdfg",代码输出 arr[as,df,g_]; 给定 string = "asdfgghk",代码输出 arr[as,df,gg,hk]。
如果字符串长度是奇数,那么最后一对将是 char[i]_,(下划线)
这是我写的部分代码:
public static char
getCharFromString(String s, int index)
{
return s.charAt(index);
}
public static String[] solution(String s) {
char a, b;
String[] arr = new String[(s.length() / 2)];
for(int i = 0; i < s.length(); i+=2) {
if(s.length() % 2 == 0) {
a = getCharFromString(s, i);
b = getCharFromString(s, i + 1);
arr[i] = a + b ;
}
else {
a = getCharFromString(s, i);
b = getCharFromString(s, i + 1);
arr[i] = a + b ;
if(i == s.length()) {
b = "_";
}
}
}
return arr;
}
解决方案
众多解决方案之一:
public static String[] solution(String s) {
int arrayLen = s.isEmpty() ? 1 : (int) Math.ceil(s.length() / 2.0);
String[] arr = new String[arrayLen];
for (int i = 0; i < arrayLen; i++) {
arr[i] = s.substring(Math.min(s.length(), i * 2), Math.min(s.length(), i * 2 + 2));
}
if (arr[arrayLen - 1].length() == 1) {
arr[arrayLen - 1] = arr[arrayLen - 1] + "_";
} else if (arr[arrayLen - 1].isEmpty()){
arr[arrayLen - 1] = "__";
}
return arr;
}
推荐阅读
- javascript - 承诺即使在解决后仍处于未决状态
- python - 使用 torch.save 和 torch.load 继续培训 - 关键错误消息
- ios - 如何使用 for 循环通过 BLE 发送数据
- ios - 如何使用“XCODE”中的 Storyboard UI 对标题文本设置约束,使其大小相对于超级视图的大小?
- r - 无法在 Windows 10 上加载 rjag
- javascript - 在纯 css 中从左到右显示文本的效果
- ruby-on-rails - 是否可以在 Rails 6 中使用 .js.erb 文件?
- git - 为什么更改我的 SSH 密钥不会为我的提交显示正确的作者?
- python - Pandas:用较短的名称对长行值进行编码,并使用另一列值作为名称的一部分
- gradle - shadowJar 不包括依赖 jar,而是包括我的 Helidon Gradle 项目中的类