Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android中获得子字符串?_Android_String_File_Substring - Fatal编程技术网

如何在Android中获得子字符串?

如何在Android中获得子字符串?,android,string,file,substring,Android,String,File,Substring,我正在尝试从字符串中获取最后一个子字符串,因为我有一个文件名tulips.jpg。如何使用subString方法仅获取.jpg 我使用了: String Main_String = dsfdsf.jpg or dfdfgfhfghgh.jpg or dsfsdfgdgsdg.jpg; (can have any length, not fixed length) String str_jpg = Main_String.substring(1, Main_String.length())

我正在尝试从字符串中获取最后一个子字符串,因为我有一个文件名tulips.jpg。如何使用subString方法仅获取.jpg

我使用了:

String Main_String =  dsfdsf.jpg or dfdfgfhfghgh.jpg or dsfsdfgdgsdg.jpg; 

(can have any length, not fixed length)

String str_jpg = Main_String.substring(1, Main_String.length());
/////////////////////

for(int i=0; i < folderResponse.getPropertyCount(); i++) 
        {
            SoapObject SingleFolder = (SoapObject)folderResponse.getProperty(i);

        ID = Integer.parseInt(SingleFolder.getProperty(0).toString());
        KEY_SUBFOLDERNAME = SingleFolder.getProperty(1).toString();
        KEY_SUBJECTTYPE = SingleFolder.getProperty(3).toString();

            String[] str = KEY_SUBFOLDERNAME.split(".");
            for(int j = 0; j < str.length; j++){
                  System.out.println(""+str[j]);
                  // you got all name here use what ever you want.
                  if(str[1] == "jpg"){
                        FolderList item = new FolderList(JPGimages[0], SingleFolder.getProperty(1).toString();, SingleFolder.getProperty(3).toString();;
                        Subfolderdata.add(item);
                    }  

听起来你想要从决赛开始的所有东西,比如:

int lastDot = text.lastIndexOf('.');
if (lastDot == -1) {
    // No dots - what do you want to do?
} else {
    String extension = text.substring(lastDot);
}
"tulips.jpg".split("\\.")
如果您的“tulips.jgp”带有以下内容:

int lastDot = text.lastIndexOf('.');
if (lastDot == -1) {
    // No dots - what do you want to do?
} else {
    String extension = text.substring(lastDot);
}
"tulips.jpg".split("\\.")

将返回一个字符串数组,第一项为“tulips”,第二项为“jpg”

假设您有如下字符串

String Main_String =  "dsfdsf.jpg&&dfdfgfhfghgh.jpg&&dsfsdfgdgsdg.jpg"; 
String[] a = Main_String.split("&&");
for(int i = 0; i < a.length; i++){
  System.out.println(""+a[i]);
  // you got all name here use what ever you want.
}

在得到所有人的答案后,我想我已经使用了StringTokenizer。它真的很好用

       StringTokenizer tokens = new StringTokenizer(KEY_SUBFOLDERNAME, ".");
                String first_string = tokens.nextToken();
                File_Ext = tokens.nextToken();
                System.out.println("First_string : "+first_string);
                System.out.println("File_Ext : "+File_Ext);

您可以使用此代码获取答案 比如:
stringmain\u String=dsfdsf.jpg

Main_String.substring(path.lastIndexOf("/") + 1);    //for`jpg`
Main\u String.substring(path.lastIndexOf(“/”)
//用于
.jpg 享受您的代码:)

您可以使用:

public static String getSubString(String mainString, String lastString, String startString) {
    String endString = "";
    int endIndex = mainString.indexOf(lastString);
    int startIndex = mainString.indexOf(startString);
    Log.d("message", "" + mainString.substring(startIndex, endIndex));
    endString = mainString.substring(startIndex, endIndex);
    return endString;
}
在此
中,主字符串是一个超级字符串。比如“I_AmANDROID.Devloper”和
lastString
是一个类似于“.”的字符串,
startString
是一个类似于“\。所以这个函数返回“AmANDROID”

作为吉恩·布罗克斯特拉

如果输入像这样,会发生什么

String Input = " ,, Num1: 12, Num2: 23, ";
String n1 = getSubString(Input, ",", "Num1:");
因此,我认为稍微改变一下比较好:

public static String getSubString(String mainString, String startString, String lastString) {
    String endString = "";

    int startIndex = mainString.indexOf(startString);

    startIndex += startString.length();

    int endIndex = mainString.indexOf(lastString,startIndex );

    endString = mainString.substring(startIndex, endIndex);

    return endString;
}

String Input =" ,, Num1: 12, Num2: 23, ";
String n1=getSubString(Input,"Num1:",","); // n1=" 12"
String n2=getSubString(Input,"Num:",","); // n2=" 23"

这需要获取最后四个字符。我是这样做的:

String fileName = "tulips.jpg";
String fileExt = fileName.substring(fileName.length() - 4);
Toast.makeText(this, "File extension is: "+ fileExt, Toast.LENGTH_LONG).show();

是的,它只从字符索引1中获取子字符串,因为这是您明确告诉它的。。。如果没有更多的上下文,“最后一个子字符串”就没有意义。我已经发布了一个完全基于你的例子的答案,但是你的问题还很不清楚。如果我的问题不清楚,我很抱歉,但是谢谢你的回答,我正在努力找出答案。感谢问题是我有不同类型的图像,比如.jpg、.png、.tif,如果文件是name.jpg,那么如果子字符串是“.jpg”,那么特定的图像将显示在我的自定义图像适配器中。我有不同的文件,比如.png、.jpg、.doc、.pdf ext。所以我想如果文件是.png,那么只有.png图像显示在自定义列表适配器中。如果split具有.jpg值,则jpg图像将显示在列表适配器中。所以请建议。我正在尝试使用字符串[]str=KEY\u SUBFOLDERNAME.split(“.”);str[2]=“jpg”;System.out.println(str[1]);如果(str[2]=“jpg”){FolderList item=new FolderList(JPGimages[0],子文件夹列表[2],子文件夹列表[1]);子文件夹data.add(item);不,来自web服务。但我不想显示图像,我只想设置适配器图像我没有足够的repo在聊天室聊天响应很好,我已经使用系统打印检查过了,但唯一的问题是拆分方法。但是如果我有不同的扩展名,比如image是.jpg/.png/.pdf,那么就只有那特定的.jpg/.png/.pdf I了mage显示在自定义图像适配器中。我将继续执行进一步的过程,但如何满足if条件。if(subString==“.png”){}/不显示任何结果。我们可以通过。然后可以得到文件名和扩展名的两个值。。。