java - 将字符转换为字符串(无数组)?

标签 java string char converters

我需要将一组字符转换为字符串。问题是,我不知道没有数组怎么办(禁止使用它们,因为我们还没有看到这个主题)。

因此该方法首先要求用户输入一个单词(String 类型)。在这种情况下,我使用“programma”这个词作为示例。第一步是对该单词的每个字符计数 +4。在这个例子中,它必须从“programma”-->“tvskveqqe”改变。

我将输入字符串“programma”拆分为单独的字符,并在 alfabet 中添加了 +4。之后,我确定是否使用了字母“wxyz”,将它们转换为 w --> a、x -->b、y --> c 和 z --> d。

但现在我卡在了这一部分,我需要将字符 't''v''s''k''v''e''q''q''e' 放入字符串中“tvskveqqe”,并将其用作返回语句。

谢谢!

    public char coderen() {
    String str; //input string
    char c, e = ' ';
    int a = 4, b, d;

    System.out.println("Geef een woord in: "); 
    str = Input.readString(); //input

    for (int i = 0; i < str.length(); i++) { // Splits up the string into separate chars
        b = (int) str.charAt(i) + a; // +4 in ASCII
        c = (char) b;

        if (c >= 'e' && c <= 'z') {
            e = c;
            System.out.println(e);
        }
        else if (c >= '{' && c <= '~') { // converts 'w''x''y''z' into 'a''b''c''d'
            d = (int)c - 26;
            e = (char) d;
            System.out.println(e);
        }
        else {
            System.out.println("fout!");
        }
    }
    return e;
}

最佳答案

你有多种方法可以做到这一点。

例如有String.concat()

String str = "";
str.concat(new String(myChar));

这实际上和做的一样

str += mychar;

但通常这是一种不好的做法,因为 Strings are immutable ,它们会消耗内存,而您在这里创建了很多内存。

您可以使用的最好的是 StringBuilder :

StringBuilder builder = new StringBuilder();
builder.append(myChar1);
builder.append(myChar2);
...
builder.toString();

附带说明一下,如果您使用的是 String,那么您实际上是在使用 char 数组Stringchar[] 结构的包装类:

public final class String
    implements java.io.Serializable, Comparable<String>, CharSequence {
    /** The value is used for character storage. */
    private final char value[];
    ...

关于java - 将字符转换为字符串(无数组)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26847785/

相关文章:

mysql - 字符长度大于实际长度

java - 不同语言的 String.length() 的计数不同

java - 如何使用java比较数组列表中的名称

java - 用逗号分割后如何分割连字符?

java - Java 中的单元测试多行字符串

java - 如何在不暂停程序的情况下获取字符

java - 延迟初始化异常

java - Google 相册 API - 静态内容上传项目的永久 URL

PHP:将多字节字符串(单词)拆分为单独的字符

c - 无法比较多个字符