Java-不使用toUppercase()将小写转换为大写
我正在尝试创建一个简短的程序,将所有大写字母转换为小写字母(从命令行输入) 下面的代码进行了编译,但没有给出我期望的结果。原因是什么 例如,java toLowerCase BANaNa->提供香蕉的输出Java-不使用toUppercase()将小写转换为大写,java,char,ascii,uppercase,lowercase,Java,Char,Ascii,Uppercase,Lowercase,我正在尝试创建一个简短的程序,将所有大写字母转换为小写字母(从命令行输入) 下面的代码进行了编译,但没有给出我期望的结果。原因是什么 例如,java toLowerCase BANaNa->提供香蕉的输出 public class toLowerCase{ public static void main(String[] args){ toLowerCase(args[0]); } public static void
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);
}
}
}
公共类toLowerCase{
公共静态void main(字符串[]args){
toLowerCase(args[0]);
}
公共静态void toLowerCase(字符串a){
对于(int i=0;i 如果(65在我看来像是家庭作业,那只是一个提示。您正在打印字符串a
,而您正在修改char
类型aChar
,这并不是在修改原始字符串a
(请记住字符串是不可变的)。公共静态void toLowerCase(字符串a){
字符串newStr=“”;
对于(int i=0;i 如果(65您正在打印字符串
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);
}
}
}
公共类toLowerCase
{
公共静态void main(字符串[]args)
{
toLowerCase(args[0]);
}
公共静态void toLowerCase(字符串a)
{
对于(int i=0;i
首先
char aChar = a.charAt(i);
“a”是一个字符串数组,所以我相信您会希望迭代每个元素
char aChar = a[i].charAt(0);
您似乎还想返回修改后的变量的值,而不是最初传入的变量“a”的值
System.out.print(aChar);
不是
希望这对您有所帮助。编写此代码的更简洁方法是
public static void printLowerCase(String a){
for(char ch: a.toCharArray()) {
if(ch >= 'A' && ch <= 'Z')
ch += 'a' - 'A';
System.out.print(ch);
}
}
publicstaticvoid打印小写(字符串a){
for(char ch:a.toCharArray()){
如果(ch>='A'&&ch/**
*方法将小写转换为大写
*如果输入为null,则返回null
*@param输入
*@返回
*/
公共静态字符串大小写(字符串输入){
如果(输入==null){
返回输入;
}
StringBuilder=新的StringBuilder();
对于(int i=0;i公共类Changecase)
{
静态int-i;
静态void changecase(字符串s)
{
对于(i=0;i64&&ch96&&ch公共类MyClass
{
私有字符串txt;
私有字符较低;
公共MyClass(字符串txt)
{
this.txt=txt;
}
公开作废印刷品()
{
对于(int i=0;i如果有人需要没有magicnumber的清晰代码和尽可能少的转换,这里是我的解决方案:
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);
final char[]charArray=new char[string.length()];
对于(int i=0;i
Hm.那么我应该创建一个新的空字符串,在其中添加新的字符类型吗?@BettyJones,是的,这可能是一种方法,或者您可以只打印新创建的字符,因为您不返回字符串。请检查您的格式并添加一些解释。答案不提供问题作者提供的功能询问,因为它只转换单个字符。此代码不更改字符串中的大小写,只打印更改的大小写字符。它无法打印非字母或空格字符的任何内容。它根本不处理非ASCII字符。提问者代码失败的原因是,它应该在字符中减去32,而不是添加32范围为65…90的acters。您已经打印了一个与作为参数传递的相同的参数changeSystem.out.print(a);
到System.out.print(aChar);
是否有类似apache/google api的实用程序可用于此?我想将大小写转换为char[]/CharSequence,中间不使用字符串。请提供帮助。是否有类似apache/google api的实用程序可用于此目的?我想将case转换为char[]/CharSequence,中间不使用字符串。请提供帮助。
public static void printLowerCase(String a){
for(char ch: a.toCharArray()) {
if(ch >= 'A' && ch <= 'Z')
ch += 'a' - 'A';
System.out.print(ch);
}
}
/**
* 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();
}
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);
}
}
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 ");
}
}
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();
}
}
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);