Java 如何在数组字符串中搜索非字母字符?
我希望用户向数组中输入字符串。检查他们输入的字符串是否包含任何非字母字符的最快方法是什么?(例如#,&,8,[,0)Java 如何在数组字符串中搜索非字母字符?,java,arrays,string,Java,Arrays,String,我希望用户向数组中输入字符串。检查他们输入的字符串是否包含任何非字母字符的最快方法是什么?(例如#,&,8,[,0) 非常感谢!您可以使用扫描仪接收用户输入: String alphabet = "abcdefghijklmnopqrstuvxyz"; int arraySize = 10; String[] charArray = new String[arraySize]; Scanner sc = new Scanner(System.in); for (int i=0; i<arr
非常感谢!您可以使用
扫描仪
接收用户输入:
String alphabet = "abcdefghijklmnopqrstuvxyz";
int arraySize = 10;
String[] charArray = new String[arraySize];
Scanner sc = new Scanner(System.in);
for (int i=0; i<arraySize; i++) {
String input = sc.next();
if (!alphabet.contains(input) {
charArray[i] = input;
} else {
charArray[i] = "";
}
}
String alphabet=“abcdefghijklmnopqrstuvxyz”;
int-arraySize=10;
String[]charArray=新字符串[arraySize];
扫描仪sc=新的扫描仪(System.in);
对于(int i=0;i您可以这样做:
int size = 1024;
String[] strs = new String[size];
Scanner sc = new Scanner(System.in);
for (int i=0; i<size; i++) {
String input = sc.next();
if (input.matches("[A-Za-z]")) {
strs[i] = input;
} else {
strs[i] = "";
}
}
sc.close();
int size=1024;
字符串[]strs=新字符串[大小];
扫描仪sc=新的扫描仪(System.in);
对于(int i=0;i开始,您的问题非常模糊。类似于“我希望用户将字符串输入到数组中”这样的语句。我认为最有可能的意思是:“我希望用户的字符串输入被放置到数组中。”。通常情况下,应用程序的用户不会将字符串输入数组,这是您的代码要执行的任务。用户需要做的只是提供一个或多个字符串,这当然体现了一个问题……用户需要提供多少字符串?好的,让我们假设它是无限的。数组是否已经存在,并且是否存在准备好包含字符串元素了吗?让我们假设,谁在乎呢
我甚至不想问用户希望如何或在哪里输入这些所需字符串。在这一点上,无论是从控制台还是某种GUI输入,对我来说都不重要,因为这显然对你来说并不重要。我们只想完成这项工作,这很酷。这就是提供你已经尝试过的代码的地方我对那些试图帮助你的人很感激。你知道,帮助那些帮助你的人
让我们重新开始,并假设我们的数组(用于保存用户输入字符串)尚未建立。让我们将其命名为inputStringArray,我们有一个变量,用于保存用户输入的字符串,将其命名为inputString。下面过度注释的代码应该考虑业务
创建一个名为UserInputOarray的新java应用程序项目,然后在自动创建的类上复制/粘贴以下代码(无论如何,在NetBeans中):
公共类UserInputToArray{
/**
*@param指定命令行参数
*/
公共静态void main(字符串[]args){
//声明或建立输入字符串的位置
//数组的范围由您决定
//varaible可以打电话给AddUserInputOarray
//方法如下。
字符串[]inputStringArray={};
//如何获取用户的输入字符串取决于您。。。
String inputString=“你好”;
//将输入字符串数组和用户字符串输入传递给
//我们的addUserInputOarray()方法,并让它修改
//或者将用户输入字符串附加到inputStringArray
//数组变量。
inputStringArray=AddUserInputOarray(inputStringArray,inputString);
//这只是用来测试我们的输入字符串数组,以便
//您可以看到,用户输入字符串已成功删除
//附加到inputStringArray数组。可以忽略它。
对于(int i=0;ipublic class UserInputToArray {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// Where you declare or establish your input strings
// array is up to you as long as the scope of the
// varaible can reach our call to the addUserInputToArray
// method below.
String[] inputStringArray = {};
// How you acquire the User's input string is up to you...
String inputString = "Hello There";
// Pass our input string array and user string input to
// our addUserInputToArray() method and let it modify
// or rather append the User input string to our inputStringArray
// array variable.
inputStringArray = addUserInputToArray(inputStringArray, inputString);
// This is used just to test our input string array so that
// you can see that the User input string has been successfully
// appended to the inputStringArray array. you can omit it.
for (int i = 0; i < inputStringArray.length; i++){
System.out.println(inputStringArray[i]);
}
}
/**
* This method is used to append a User Input String to our
* inputStringArray[] variable.
* @param stringArray : (String Array) This is where you supply the
* input string array variable.
*
* @param inputString : The User's supplied input string is provided here.
*
* @return : A String array with the Users string input appended to it but
* only if it is found that the string only contains Alphabetic characters
* (a to z and A to Z and spaces).
*/
public static String[] addUserInputToArray(String[] stringArray, String inputString) {
// Get the length of our input string array and add 1.
//This is used so we don't have to type stringArray.length
//all the time.
int length = (stringArray.length + 1);
// Here we use the string matches method with a small regex
// expression string to make sure only alphabetic charaters are
// contained within the supplied User input string. Expression
// breakdown:
// (?i) Ignore letter case (we don't need to worry about that in this case).
// [ a-z] Match any characters that are either a to z or a space.
// * Any number of characters (strings can be any length).
// ( ) All enclosed in a set of brackets to create a group. Not
// really required in this case (just a habbit).
if (inputString.matches("((?i)[ a-z]*)")) {
// So, our acquired User input string has passed requirements and
// now it's time to append that string to our input string array.
// As you know there is no such thing as appending to an array so
// we need to simulate it and to do that we need to create a temporary
// array, increase its length to what is desired which in our case is
// once (1) every time this method is called, and then copy our passed
// original input string array into it while preserving the length of
// our temporary array and then finally forcing our original input
// string array to be our temporary array. Now we have a input string
// array which is one element size bigger than when we started and ready
// to have string data placed into it.
String[] tmp = new String[length];
if (stringArray.length != 0) {
System.arraycopy(stringArray, 0, tmp, 0, Math.min(stringArray.length, tmp.length));
}
stringArray = tmp;
// Append our User input string to the array.
stringArray[length-1] = inputString;
}
return stringArray;
}
}