Я пробовал несколько версий, в том числе несколько решений, найденных здесь в StackOverflow, но я всегда получаю числа вместо символов в консоли. Для домашней работы в моем uni нам нужно инвертировать символы в строке. Но создание новой строки, кажется, не так просто.Java-символ для String
Я попытался с помощью StringBuilder,
StringBuilder builder = new StringBuilder();
// ...
builder.append(c); // c of type char
Объединение строк,
System.out.print("" + c); // c of type char
и даже String.valueOf(),
System.out.print(String.valueOf(c)); // c of type char
и каждый из них снова с явным приведением до char
. Но я всегда получаю порядковый номер символов в последовательности вместо фактических символов в качестве вывода в консоли. Как правильно построить новую строку из char
?
/**
* Praktikum Informatik - IN0002
* Arbeitsblatt 02 - Aufgabe 2.6 (Buchstaben invertieren)
*/
public class H0206 {
public static String readLine() {
final StringBuilder builder = new StringBuilder();
try {
// Read until a newline character was found.
while (true) {
int c = System.in.read();
if (c == '\n')
break;
builder.append(c);
}
}
catch (java.io.IOException e) {
; // We assume that the end of the stream was reached.
}
return builder.toString();
}
public static void main(String[] args) {
// Read the first line from the terminal.
final String input = readLine();
// Create a lowercase and uppercase version of the line.
final String lowercase = input.toLowerCase();
final String uppercase = input.toUpperCase();
// Convert the string on the fly and print it out.
for (int i=0; i < input.length(); ++i) {
// If the character is the same in the lowercase
// version, we'll use the uppercase version instead.
char c = input.charAt(i);
if (lowercase.charAt(i) == c)
c = uppercase.charAt(i);
System.out.print(Character.toString(c));
}
System.out.println();
}
}
'c' типа' char'? Тот, который я вижу в вашем примере, это 'int'. Кроме того, что делает 'System.in.read()' do? –
['String # valueOf()' shoud work] (http://stackoverflow.com/questions/8172420/how-to-convert-a-char-to-a-string-in-java) ... Вы уверен, что вы не цифра, например ' '4''? – sp00m
'c' может содержать символьные данные, но это, безусловно, тип' int', а не 'char'. Преобразуйте его в 'char' следующим образом:' char ch = (char) c; '. – icza