Java 将字符串中的每个字母加倍
我正在为Java1做一个项目,我完全被这个问题困住了 基本上,我需要将字符串中的每个字母加倍Java 将字符串中的每个字母加倍,java,while-loop,char,Java,While Loop,Char,我正在为Java1做一个项目,我完全被这个问题困住了 基本上,我需要将字符串中的每个字母加倍 "abc" -> "aabbcc" "uk" -> "uukk" "t" -> "tt" 我需要在一个while循环中完成它,这被认为是“Java1”的价值所在。所以我猜这意味着更多的是一种有问题的方法 据我所知,对我来说,最简单的方法是在while循环中使用charAt方法,但由于某种原因,我的大脑无法理解如何将字符作为字符串返回到另一个方法 "abc" -&g
"abc" -> "aabbcc"
"uk" -> "uukk"
"t" -> "tt"
我需要在一个while循环中完成它,这被认为是“Java1”的价值所在。所以我猜这意味着更多的是一种有问题的方法
据我所知,对我来说,最简单的方法是在while循环中使用charAt方法,但由于某种原因,我的大脑无法理解如何将字符作为字符串返回到另一个方法
"abc" -> "aabbcc"
"uk" -> "uukk"
"t" -> "tt"
谢谢
[编辑]我的代码(错误,但这可能会有所帮助)
int索引=0;
int length=str.length();
while(索引<长度){
返回str.charAt(索引)+str.charAt(索引);
索引++;
}
您可以执行以下操作:
public void doubleString(String input) {
String output = "";
for (char c : input.toCharArray()) {
output += c + c;
}
System.out.println(output);
}
公共静态字符[]双字符(最终字符[]输入){
最终字符[]输出=新字符[input.length*2];
for(int i=0;i
试试这个
String a = "abcd";
char[] aa = new char[a.length() * 2];
for(int i = 0, j = 0; j< a.length(); i+=2, j++){
aa[i] = a.charAt(j);
aa[i+1]= a.charAt(j);
}
System.out.println(aa);
String a=“abcd”;
char[]aa=新字符[a.length()*2];
对于(inti=0,j=0;j
你的直觉很好charAt(i)
将返回位置i
处字符串中的字符,是吗
你还说你想使用循环。一个for
循环,遍历列表的长度string.length()
,将允许您执行此操作。在字符串中的每个节点上,您需要做什么?双重角色
让我们看看您的代码:
int index = 0;
int length = str.length();
while (index < length) {
return str.charAt(index) + str.charAt(index); //return ends the method
index++;
}
这将把字符添加到newString
,允许您返回完整的字符串,而不是一组双精度字符
顺便说一句,作为for循环,这可能更容易做到,可以浓缩和澄清代码。我的个人解决方案(针对Java 1类)如下所示:
String newString = "";
for (int i = 0; i < str.length(); i++){
newString += str.charAt(i) + str.charAt(i);
}
return newString;
String s = "abc";
String result = "";
int i = 0;
while (i < s.length()){
char c = s.charAt(i);
result = result + c + c;
i++;
}
String newString=“”;
对于(int i=0;i
希望这有帮助 是的,for循环在这里会更有意义,但是如果需要使用while循环,那么它会如下所示:
String newString = "";
for (int i = 0; i < str.length(); i++){
newString += str.charAt(i) + str.charAt(i);
}
return newString;
String s = "abc";
String result = "";
int i = 0;
while (i < s.length()){
char c = s.charAt(i);
result = result + c + c;
i++;
}
String s=“abc”;
字符串结果=”;
int i=0;
而(i
假设这是在一个方法中,您应该了解,您只能从一个方法返回一次。遇到return语句后,控件返回到调用方法。因此,每次在循环中返回char的方法是错误的
int index = 0;
int length = str.length();
while (index < length) {
return str.charAt(index) + str.charAt(index); // only the first return is reachable,other are not executed
index++;
}
int索引=0;
int length=str.length();
while(索引<长度){
return str.charAt(index)+str.charAt(index);//只有第一个返回是可访问的,其他返回不执行
索引++;
}
更改方法以生成字符串并返回它
public String modify(String str)
{
int index = 0;
int length = str.length();
String result="";
while (index < length) {
result += str.charAt[index]+str.charAt[index];
index++;
}
return result;
}
公共字符串修改(字符串str)
{
int指数=0;
int length=str.length();
字符串结果=”;
while(索引<长度){
结果+=str.charAt[指数]+str.charAt[指数];
索引++;
}
返回结果;
}
该方法使用中描述的正则表达式语法,其中我们可以了解
匹配“任何字符”。在替换中,$number表示编号为“捕获组”,而$0
预定义为整个匹配。因此,$0$0
引用匹配字符两次。正如该方法的名称所示,它将对所有匹配项(即所有字符)执行。请查看StringBuilder
,看看这是否有帮助。不过,我会用来表示循环,而不是while
循环。你写过任何代码来解决这个问题吗?认真地说,Java 1?为什么?你从哪里得到的?@RaviKumar,是的。我相信我的“逻辑”是正确的,这是一种我似乎无法理解的实际方法。如果有帮助的话,我会把它添加到问题中。@NeplatnyUdaj.java1什么?这是一个高中班,正是我想要的!谢谢你按照我的要求使用while循环!我完全忘记了在循环过程中可以更改变量的值:)如果输入是一个单词,例如“hello”,那么输出将是“208202216216222”。我想这不是故意的。
String s="mystring".replaceAll(".", "$0$0");