Преобразование выражения из C # в Java - PullRequest
0 голосов
/ 31 августа 2010

Я должен преобразовать программу на C # в Java.В какой-то момент я действительно не понимаю, что сделано, там.Я изменил код, чтобы уточнить типы и привести пример.

string myString = "Test";
long l = (long)myString[0];

1) Что [0] делает с обычной строкой?Это вообще возможно?Является ли это просто подстрокой, в данном случае "T"?

2) Как вы можете привести String или символ к long, если String представляет текст?

Ответы [ 4 ]

3 голосов
/ 31 августа 2010

long l = (long)myString[0];

индекс строки дает символ.A char выплачивается как long.Это даст вам длинное значение (значение Юникода) символа в первой позиции строки, т. Е. A будет 65.

Приведение (long) не требуется в C #, потому что char имеет так называемый «неявный оператор приведения» для long и int.Следующее утверждение также правильно:

long l = myString[0];

Эквивалент char в C # равен char в Java, хотя реализации немногоразные.В Java символ может быть приведен к int или long.Чтобы получить персонажа, используйте CharAt().

2 голосов
/ 31 августа 2010

Я думаю, что это конвертирует код символа в long.В Java вы должны:

long l = (long) myString.charAt(0)
1 голос
/ 31 августа 2010

Строка - это массив символов, позволяющий получить доступ к заданной позиции.

Сказав это, myString [0] обращается к первому символу, 'T'.

Затем вы можете преобразовать символ в long, преобразовав его в значение позиции ASCII.

0 голосов
/ 31 августа 2010

Вы можете использовать этот конвертер http://www.tangiblesoftwaresolutions.com/index.htm - пробная версия может конвертировать некоторое количество строк бесплатно:)

...