将alternate char转换为大写

时间:2015-01-20 17:52:13

标签: java netbeans

我是java编程的新手。我想在UpperCase中打印一个带有替换字符的字符串。

String x=jTextField1.getText();
x=x.toLowerCase();
int y=x.length();
for(int i=1;i<=y;i++)
{}

我不知道如何继续前进。我想借助循环和继续功能来做这个问题。 帮助将不胜感激。感谢。

10 个答案:

答案 0 :(得分:2)

@Test
public void alternateUppercase(){
    String testString = "This is a !!!!! test - of the emergency? broadcast System.";

    char[] arr = testString.toLowerCase().toCharArray();

    boolean makeUppercase = true;
    for (int i=0; i<arr.length; i++) {
        if(makeUppercase && Character.isLetter(arr[i])) {
            arr[i] = Character.toUpperCase(arr[i]);
            makeUppercase = false;
        } else if (!makeUppercase && Character.isLetter(arr[i])) {
            makeUppercase = true;
        }
    }
    String convertedString = String.valueOf(arr);
    System.out.println(convertedString);
}

答案 1 :(得分:1)

字符串从索引0开始,在索引x.length()-1

处结束

要按索引查找字符串,您可以使用String.charAt(i)

要将字符转换为大写字母,您可以执行Character.toUpperCase(ch);

我建议您使用这些字符构建StringBuilder,完成后可以toString()

答案 2 :(得分:1)

首先,java索引从0开始(不是1)。我想你要求的是一些简单的事情,比如Character.toLowerCase(char)Character.toUpperCase(char)modulo(除法的剩余部分)2的结果进行交替调用。

String x = jTextField1.getText();
for (int i = 0, len = x.length(); i < len; i++) {
    char ch = x.charAt(i);
    if (i % 2 == 0) {
        System.out.print(Character.toLowerCase(ch));
    } else {
        System.out.print(Character.toUpperCase(ch));
    }
}
System.out.println();

答案 3 :(得分:0)

尽可能多地使用您的代码,这就是我所得到的。首先,我创建了一个名为build的字符串,它将帮助您构建结果字符串。另外,我将索引更改为[0,size-1]而不是[1,size]。使用模2的模数有助于&#34;每隔一个&#34;位。

String build =""
String x=jTextField1.getText();
x=x.toLowerCase();
int y=x.length();
for(int i=0;i<y;i++)
{
     if(i%2==0){
        build+=Character.toUpperCase(x.charAt(i));
     else{
        build+=x.charAt(i);
     }
}
x=build; //not necessary, you could just use build.

快乐的oding!如果您有任何问题,请发表评论。

答案 4 :(得分:0)

你可以使用来自unicode表的小写和大写ABCabc的65距离来制作它:

String str = "abbfFDdshFSDjdFDSsfsSdoi".toLowerCase();

char c;
boolean state = false; 
String newStr = "";
for (int i=0; i<str.length(); i++){
    c = str.charAt(o);

    if (state){
         newStr += c;
    }
    else {
         newStr += c + 65;
    }
    state = !state;
}

答案 5 :(得分:0)

我确定有一种更流畅的方法可以做到这一点,但这将有效2分钟答案:

public String homeWork(){
        String x = "Hello World";
        StringBuilder sb = new StringBuilder();
        for(int i=0;i<=x.length();i++){
             char c = x.charAt(i);
             if(i%2==0){
                sb.append(String.valueOf(c).toUpperCase());
             } else {
                sb.append(String.valueOf(c).toLowerCase());
             }
        }
        return sb.toString();
    }

要解释i%2 == 0,如果i的余数除以2等于零(偶数)则返回true

答案 6 :(得分:0)

public class PrintingStringInAlternativeCase {
    public static void main(String s[])
    {
        String testString = "TESTSTRING";
        String output = "";
        for (int i = 0; i < testString.length(); i++) {
            if(i%2 == 0)
            {
                output += Character.toUpperCase(testString.toCharArray()[i]);
            }else
            {
                output += Character.toLowerCase(testString.toCharArray()[i]);
            }
        }

        System.out.println("Newly generated string is as follow: "+ output);
    }
}

答案 7 :(得分:0)

public static void main(String[] args)
{
    Scanner sc=new Scanner(System.in);
    System.out.println("Enter Stirng");
    String str=sc.nextLine();
    for(int i=0;i<str.length();i++)
    {
        if(i%2==0)
        {
            System.out.print(Character.toLowerCase(str.charAt(i)));
        }
        else
        {
            System.out.print(Character.toUpperCase(str.charAt(i)));
        }
    }

    sc.close();
}

答案 8 :(得分:0)

Java 8解决方案:

static String getMixedCase(String str) {
    char[] chars = str.toCharArray();
    return IntStream.range(0, str.length())
                    .mapToObj(i -> String.valueOf(i % 2 == 1 ? chars[i] : Character.toUpperCase(chars[i])))
                    .collect(Collectors.joining());
}

答案 9 :(得分:0)

public class ClassC {

    public static void main(String[] args) {
        String str = "Hello";
        StringBuffer strNew = new StringBuffer();
        for (int i = 0; i < str.length(); i++) {
            if (i % 2 == 0) {
                strNew.append(Character.toLowerCase(str.charAt(i)));
            } else {
                strNew.append(Character.toUpperCase(str.charAt(i)));
            }
        }
        System.out.println(strNew);
    }
}