我试图创建一个简短的程序,将转换被大写,以(在命令行输入)小写所有字母。
下面编译但不给我,我期待的结果。 什么是这样做的原因?
例如)的java toLowerCase香蕉 - >给香蕉的输出
public class toLowerCase{
public static void main(String[] args){
toLowerCase(args[0]);
}
public static void toLowerCase(String a){
for (int i = 0; i< a.length(); i++){
char aChar = a.charAt(i);
if (65 <= aChar && aChar<=90){
aChar = (char)( (aChar + 32) );
}
System.out.print(a);
}
}
}
Answer 1:
看起来像功课对我来说,只是一个提示。 您打印字符串a
,而你正在修改的char
类型aChar
,它不是修改原始字符串a
。 (记住字符串是不可变的)。
Answer 2:
要打印的String
a
,而不需要修改它。 您可以在回路中直接打印字符如下:
public class toLowerCase
{
public static void main(String[] args)
{
toLowerCase(args[0]);
}
public static void toLowerCase(String a)
{
for (int i = 0; i< a.length(); i++)
{
char aChar = a.charAt(i);
if (65 <= aChar && aChar<=90)
{
aChar = (char)( (aChar + 32) );
}
System.out.print(aChar);
}
}
}
Answer 3:
看起来你靠近。 :)
对于初学者...
char aChar = a.charAt(i);
“一”是一个字符串数组,所以我相信你会想遍历每个元素
char aChar = a[i].charAt(0);
它也好像你要的不是产品,其最初的变量通过“一”返回修改变量的值。
System.out.print(aChar);
不
System.out.print(a);
希望可以帮助你。
Answer 4:
编写这些代码的清洁方法是
public static void printLowerCase(String a){
for(char ch: a.toCharArray()) {
if(ch >= 'A' && ch <= 'Z')
ch += 'a' - 'A';
System.out.print(ch);
}
}
注:在任何其他范围内,这将不是大写字符工作。 (有他们的1000个)
Answer 5:
/**
* Method will convert the Lowercase to uppercase
* if input is null, null will be returned
* @param input
* @return
*/
public static String toUpperCase(String input){
if(input == null){
return input;
}
StringBuilder builder = new StringBuilder();
for(int i=0;i<input.length();i++){
char stringChar = input.charAt(i);
if(92 <= stringChar && stringChar <=122){
stringChar = (char)( (stringChar - 32) );
builder.append(stringChar);
}
else if (65 <= stringChar && stringChar<=90)
{
builder.append(stringChar);
}
}
if(builder.length() ==0){
builder.append(input);
}
return builder.toString();
}
Answer 6:
public static void toLowerCase(String a){
String newStr = "";
for (int i = 0; i< a.length(); i++){
char aChar = a.charAt(i);
if (65 <= aChar && aChar<=90){
aChar = (char)( (aChar + 32) );
}
newStr = newStr + aChar;
}
System.out.println(newStr);
}
您应该打印newStr
之外循环。 你试图将其打印在循环中
Answer 7:
public class Changecase
{
static int i;
static void changecase(String s)
{
for(i=0;i<s.length();i++)
{
int ch=s.charAt(i);
if(ch>64&&ch<91)
{
ch=ch+32;
System.out.print( (char) ch);
}
else if(ch>96&&ch<123)
{
ch=ch-32;
System.out.print( (char) ch);
}
if(ch==32)
System.out.print(" ");
}
}
public static void main (String args[])
{
System.out.println("Original String is : ");
System.out.println("Alive is awesome ");
Changecase.changecase("Alive is awesome ");
}
}
Answer 8:
public class MyClass
{
private String txt;
private char lower;
public MyClass(String txt)
{
this.txt = txt;
}
public void print()
{
for(int i=0;i<txt.length();i++)
{
if('A' <= txt.charAt(i) && txt.charAt(i) <= 'Z')
{
lower = (char)(txt.charAt(i) + 32);
System.out.print(lower);
}
else
{
lower = txt.charAt(i);
System.out.print(lower);
}
}
}
public static void main(String[] args)
{
MyClass mc = new MyClass("BaNaNa");
mc.print();
}
}
对不起已经很晚了现场,但是这应该解决这个问题。 一个else条件,因为当它不是零它完全抛弃字母。
Answer 9:
如果有人需要,而不MagicNumbers和清晰的代码少如下可能的转换是我的解决方案:
final char[] charArray = new char[string.length()];
for (int i = 0; i < string.length(); i++) {
char c = string.charAt(i);
charArray[i] = Character.isLowerCase(c) ? Character.toUpperCase(c) : Character.toLowerCase(c);
}
String.valueOf(charArray);
Answer 10:
import java.util.Scanner;
public class LowerToUpperC {
public static void main(String[] args) {
char ch;
int temp;
Scanner scan = new Scanner(System.in);
System.out.print("Enter a Character in Lowercase : ");
ch = scan.next().charAt(0);
temp = (int) ch;
temp = temp - 32;
ch = (char) temp;
System.out.print("Equivalent Character in Uppercase = " +ch);
}
}
文章来源: Java - Convert lower to upper case without using toUppercase()