java 一段反转大小写的代码问题 这段代码可以编译 但是不能运行 这是怎么了? 如下↓↓↓

作者&投稿:说卸 (若有异议请与网页底部的电邮联系)
java源代码编译成功 但是不能运行 详细问题如下~

是找不到类,你看一下你的类名输写是否正常,一般类名都是首字母大写.另外就是在配置CLASSPATH时记得在最前面加上"."代表当前路径.当然你在运行时要找到类的文件夹下.才能找到类

该如何解决呢?解决办法如下:
1.由于是在运行阶段出现的问题,那么可能是环境变量配置不当的问题,即可能是classpath路径配置错误,而导致.class文件无法加载。那么此时你可以检查是否配置好classpath路径,一般来说classpath路径配置如下:
.;%java_home%\lib;%java_home%\libools.jar; (注意前面的 . 以及 ; 缺一不可)
其中.表示当前路径,;表示分隔符。
2.如果你试过了很多次,classpath也配置对了,依旧出现这个错误,注意你使用的测试代码,是否在某一个包名的下面;
比如说如下测试代码:

在文件所在的当前目录下,运行javac TestPlusPlus.java编译成功,生成TestPlusPlus.class文件,这个时
候,你用javaTestPlusPlus想运行程序,总会出现”找不到或无法加载主类“的错误。这个时候要注意,
之所以找不到,是因为TestPlusPlus在HelloWorld包名的下面。
解决办法:
1.去掉 ”package HelloWorld;“ 重新用javac 编译TestPlusPlus.java,再运行javaTestPlusPlus就可以了。
2.新建一个包名一样的文件夹,在本例中,为建立一个HelloWorld的文件夹,把TestPlusPlus.java文件移到该目录下。
然后在HelloWorld文件夹的平级下,打开DOS命令窗口,运行javacHelloWorld/TestPlusPlus.java编译程序,
运行javaHelloWorld/TestPlusPlus(或者javaHelloWorld.TestPlusPlus也可以),则可以运行含有包名的java程序。
注意:包名不要含有'.'(点),' '(空格)等特殊符号,这样的话命令行无法判断包名与java程序名的分割点在哪里,
从而还是找到或者无法加载主类。
原理说明:
java程序运行class文件,对于有包名的类,java把包名当成文件夹处理."包名+类名"相当于"文件夹目录+类名"来寻找类。

你好。


把这行代码

c[i] = (char)(c[i-32]);

修改为

c[i] = (char)(c[i]-32);


把这行代码

c[i] = (char)(c[i+32]);

修改为

c[i] = (char)(c[i]+32);


就可以了。完整的修改代码参考如下:


public class ChangeUpDown
{
public String s = "TestString";
public void change(){
char[] c = s.toCharArray();
for (int i = 0; i<c.length ; i++){
if ( ((int)c[i]>96)&&((int)c[i]<123) ){
c[i] = (char)(c[i]-32);
}else if ( ((int)c[i]>64)&&((int)c[i]<91) ){
c[i] = (char)(c[i]+32);
}
}
for (int i = 0; i<c.length ; i++){
System.out.print(c[i]);
}
}

public static void main( String[] args )
{
ChangeUpDown cud = new ChangeUpDown( );
System.out.println("before change:"+cud.s);
System.out.print("after change:");
cud.change( );
}
}


望采纳!



我没仔细检查其他逻辑,但是这里

c[i] = (char)(c[i-32]);

是不是应该改成

c[i] = (char)(c[i]-32);


另一处也是同样道理。


不行吗,我给你完整代码。

public class ChangeUpDown {
public static void main(String[] args) {
System.out.println(change("TestString"));
}
public static String change(String source) {
char[] cs = source.toCharArray();
for (int i = 0; i < cs.length; i++) {
if (cs[i] >= 65 && cs[i] <= 90) {
cs[i] += 32;
} else if (cs[i] >= 97 && cs[i] <= 122) {
cs[i] -= 32;
}
}
return new String(cs);
}
}


使用 Character的 isUpperCase/toUpperCase/isLowerCase/toLowerCase 判断和转换。

for (int i = 0; i < c.length; i++) {
if (((int) c[i] > 96) && ((int) c[i] < 123)) {
c[i] = (char) (c[i] - 32);
} else if (((int) c[i] > 64) && ((int) c[i] < 91)) {
c[i] = (char) (c[i] + 32);
}
}

加个main函数跑跑试试先~~~



改成这样就对了
package day0425;
import org.junit.Test;
//ChangeUpDown.java
public class ChangeUpDown{
public String s = "TestString";
@Test
public void change(){
char[] c = s.toCharArray();
for (int i = 0; i<c.length ; i++){
if ( ((int)c[i]>96)&&((int)c[i]<123) ){
c[i] = (char)(c[i]-32);
}else if ( ((int)c[i]>64)&&((int)c[i]<91) ){
c[i] = (char)(c[i]+32);
}
}
for (int i = 0; i<c.length ; i++){
System.out.print(c[i]);
}
}
}


你那提示报什么错误?把错误截图出来看看!还有为什么你要自己写这个大小写的转换了,java自身就自带了大小写的转换函数的!


肇州县17566307532: java 一段反转大小写的代码问题 这段代码可以编译 但是不能运行 这是怎么了? 如下↓↓↓ -
祗连妇宝: 你好.把这行代码 c[i] = (char)(c[i-32]);修改为 c[i] = (char)(c[i]-32); 把这行代码 c[i] = (char)(c[i+32]);修改为 c[i] = (char)(c[i]+32); 就可以了.完整的修改代码参考如下:public class ChangeUpDown { public String s = "TestString"; public void ...

肇州县17566307532: java 输入一个小写字母 转换为大写字母输出 这段代码哪错了 怎么改 -
祗连妇宝: .next() 方法接收的也是String类型的,不过nextLine()是以回车为标志,next()是以空格为标志 java中没有直接读入字符的方法 将你的 char smallletter 换成String smallletter 然后用smallletter.charAt(i)替代 smallletter然后用循环,i<smallletter.length()输出就可以了

肇州县17566307532: java中输入一串字母,倒序并大写输出 -
祗连妇宝: 如果一串大写字母小于等于255个,可以用以下这个程序段 var s:string; i:integer; begin readln(s); for i:=length(s) downto 1 do write(chr(ord(s[i])+32)); writeln; end.

肇州县17566307532: java用户输入一段字符串,讲这段字符串的大小写转换并输出. -
祗连妇宝: 转换符串的大小写,方法62616964757a686964616fe59b9ee7ad9431333365633864如下:public class StringCast { // 大小写转换方法 public void cast() { // 定义字符串 String string = "AILltDRGVTzmugNhuiLio"; // 将定义好的字符串转换...

肇州县17566307532: JAVA怎样用switch语句将小写字母转化为大写字母 -
祗连妇宝: 只写了一点,a b c d e 转换大写. 可以自行添加多个. import java.util.Scanner; class CAPS { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String word = scan.next();//输入String类型数据 char X = word.charAt...

肇州县17566307532: 一个Java题:从键盘对接收的字符串中的字母进行大小写互转,输出后出现问题,求助! -
祗连妇宝: 在System.out.println(str);后打印输出一个换行符

肇州县17566307532: java大小写转换的简单问题 -
祗连妇宝: 把System.out.println(a)把+号去掉.. char a = 'a',这里应该写单引号..

肇州县17566307532: java编程,输入一段英文字母,将每个单词的首字母转换为大写字母. -
祗连妇宝: 在你的基础上修改得 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer;public class TTTest { public static void main(String args[]) { try { BufferedReader in = new ...

肇州县17566307532: java生成5组长度为10的随机大小写英文字母串,并将偶数位字母转换为大写,然后字符串反转 -
祗连妇宝: public String[] doSomething() { String all = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; char[] allChars = all.toCharArray(); String[] result = new String[5]; Random random = new Random(); for(int i=0; i result[i] = new ...

肇州县17566307532: 用java编写一个或多个连续字母的大小写转换程序,请问,该如何实现,急!!!要求,要带输入状态.
祗连妇宝: //键盘输入一行字母.赋值于变量str String str=new BufferedReader(new InputStreamReader(System.in)).readLine(); //把字符串str转换为字符数组chr char[] chr=str.toCharArray(); for(int i=0;i<chr.length;i++) { if(chr[i]>96) //如果ASCII码>96(小写...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网