Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将字符串中的每个字母加倍_Java_While Loop_Char - Fatal编程技术网

Java 将字符串中的每个字母加倍

Java 将字符串中的每个字母加倍,java,while-loop,char,Java,While Loop,Char,我正在为Java1做一个项目,我完全被这个问题困住了 基本上,我需要将字符串中的每个字母加倍 "abc" -> "aabbcc" "uk" -> "uukk" "t" -> "tt" 我需要在一个while循环中完成它,这被认为是“Java1”的价值所在。所以我猜这意味着更多的是一种有问题的方法 据我所知,对我来说,最简单的方法是在while循环中使用charAt方法,但由于某种原因,我的大脑无法理解如何将字符作为字符串返回到另一个方法 "abc" -&g

我正在为Java1做一个项目,我完全被这个问题困住了

基本上,我需要将字符串中的每个字母加倍

"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");