Java 如果String.charAt(i)遇到空格,则会中断程序
下面的代码基本上用ABC中的反向字符替换字符串中的字符 例如,如果用户输入-AbC 那么结果就是ZyX 我的问题是,如果输入包含空格,那么它会中断代码,并且不会继续执行Java 如果String.charAt(i)遇到空格,则会中断程序,java,string,Java,String,下面的代码基本上用ABC中的反向字符替换字符串中的字符 例如,如果用户输入-AbC 那么结果就是ZyX 我的问题是,如果输入包含空格,那么它会中断代码,并且不会继续执行 import java.util.*; public class HelloWorld{ int[] capitals = new int[26]; int[] smalls = new int[26]; public static void main(String []args){
import java.util.*;
public class HelloWorld{
int[] capitals = new int[26];
int[] smalls = new int[26];
public static void main(String []args){
HelloWorld rs=new HelloWorld();
rs.Initialize();
rs.Encode();
}
public void Encode()
{
Scanner reader = new Scanner(System.in);
System.out.println("Enter string: ");
String input = reader.next();
//System.out.println("User entered: " + input);
String newString="";
int pos=0;
for (int in = 0; in < input.length(); in++)
{
if(input.charAt(in) == ' ')
{
newString += " ";
}
else
{
if((int)input.charAt(in) >= 65 && (int)input.charAt(in) <= 90)
{
for(int i = 0; i< 26; i++) {
if((int)input.charAt(in) == capitals[i]) {
newString += (char)capitals[25-i];
}
}
}
else if((int)input.charAt(in)>=97 && (int)input.charAt(in) <= 122)
{
for(int i = 0; i< 26; i++) {
if((int)input.charAt(in) == smalls[i]) {
newString += (char)smalls[25-i];
}
}
}
else
{
if(input.charAt(in) == ' ')
newString += " ";
else
newString += input.charAt(in);
}
}
pos = 0;
}
System.out.println(newString);
}
public void Initialize()
{
int pos=0;
for (int i=65;i<=90;i++)
{
capitals[pos] = i;
smalls[pos]= i + 32;
pos++;
}
}
}
import java.util.*;
公共类HelloWorld{
int[]大写=新int[26];
int[]smalls=新int[26];
公共静态void main(字符串[]args){
HelloWorld rs=新HelloWorld();
rs.Initialize();
rs.Encode();
}
公共无效编码()
{
扫描仪阅读器=新扫描仪(System.in);
System.out.println(“输入字符串:”);
字符串输入=reader.next();
//System.out.println(“用户输入:”+输入);
字符串newString=“”;
int pos=0;
for(int in=0;in=65&(int)input.charAt(in)=97&(int)input.charAt(in)调用
查找并返回此扫描程序中的下一个完整令牌
通常,扫描仪的标记由空格字符表示。从同一页:
扫描仪使用的默认空白分隔符由Character.isWhitespace识别
因此,当您调用Scanner.next()
时,它只读取到第一个空格,因为您再也不会从中读取,所以当程序结束时,其余的输入将被丢弃
如果您想要用户输入的所有内容,请改用nextLine
。呼叫
查找并返回此扫描程序中的下一个完整令牌
通常,扫描仪的标记由空格字符表示。从同一页:
扫描仪使用的默认空白分隔符由Character.isWhitespace识别
因此,当您调用Scanner.next()
时,它只读取到第一个空格,因为您再也不会从中读取,所以当程序结束时,其余的输入将被丢弃
如果您想要用户输入的所有内容,请使用nextLine
。根据Javadoc
下一个()
查找并返回此扫描程序中的下一个完整令牌
空格是delimter,因此下一个标记始终是空格字符之前字符串的第一部分
您可以设置delimter模式,如下所述:
根据Javadoc
下一个()
查找并返回此扫描程序中的下一个完整令牌
空格是delimter,因此下一个标记始终是空格字符之前字符串的第一部分
您可以设置delimter模式,如下所述:
ZyXAbC
的反面是什么?ZyX
的反面是什么?