Ⅰ java如何進行字元串切割提取
運用正則表達式分割就可以了,測試代碼
public class Test {
public static void main(String[] args) {
String str="how|are|you";
String[] ary = str.split("\\|");
String s1 = ary[0];
String s2 = ary[1];
String s3 = ary[2];
System.out.println("s1 = " + s1);
System.out.println("s2 = " + s2);
System.out.println("s3 = " + s3);
}
}
----------測試結果
s1 = how
s2 = are
s3 = you
Ⅱ java 切割wav音頻
1.首先應該得到音樂文件的時長---這個可以網路,我也不會,但應該可以實現
2.然後得到文件大小,除以文件總分鍾數
3.根據得到的大小切割文件(用二進制的方式讀取文件)
Ⅲ 關於java字元串切割split的幾個問題
String[] 就是字元串數組的意思。
newstr是字元串數組的引用,newstr.length就是這個字元串數組的長度。
這個其實看API最好,
limit 參數控制模式應用的次數,因此影響所得數組的長度。如果該限制 n 大於 0,則模式將被最多應用
n-1 次,數組的長度將不會大於 n,而且數組的最後一項將包含所有超出最後匹配的定界符的輸入。如果 n
為非正,那麼模式將被應用盡可能多的次數,而且數組可以是任何長度。如果 n 為
0,那麼模式將被應用盡可能多的次數,數組可以是任何長度,並且結尾空字元串將被丟棄。
Ⅳ 如何用java把txt文件以句子為單位切割
java 的String有split主法你知道嗎?
一。 首先,找出句子的規律,得出:
1。凡句子都是有空格
2。凡句子都是最後帶符號「。?!;」等
二。 使用split方法將你的字元串分成N個字元串數組
String text = "你好,親愛的。我想你知道你今天好嗎?我想你。"
String[] subStrings = text.split(" ");
得到這個數組後遍歷數組,找出數組中含有規定標點符號的,並加上「F」
for(int i=0;i<subStrings.length; i++){
String sub = subStrings[i];
if(sub.equals("。")||sub.equals(";")sub.equals("?")){
sub = "<f>"+sub+"</f>";
}
}
另外,按照規定句子結束是有空格的,但萬一你的需求就是沒有空格怎麼辦?
這樣你就換一種思路,用動態數組來做Vector或者ArrayList,遍歷你的字元串,如果遇到規定的符號,則截取子字元串並加入到你的vector中。 最後遍歷vector跟上面遍歷數組的方法一樣。
或者最笨最簡單的方法就是第一次遍歷你的字元串,每次遇到名號分號和問號就插入一個空格。然後再用上面我寫的方法變成數組,再遍歷數組就OK了。
解決問題有很多很多方法,平時要多多練習一定會有長進。
這可能是你的作業,所以就不具體打出所有詳細代碼了吧,祝你學習進步
Ⅳ 求一個Java切割圖片的函數
package com.supben.util;
import java.awt.Dimension;
import java.awt.Image;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Iterator;
import javax.imageio.ImageIO;
import javax.imageio.ImageReadParam;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
import org.apache.log4j.Logger;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public class ImageUtil {
private static final Logger log = Logger.getLogger(ImageUtil.class);
/**
* 切割圖片
* @param x 截點橫坐標 (從左開始計數)
* @param y 截點縱坐標 (從上開始計數)
* @param width 截取的寬度
* @param height 截取的長度
* @param oldpath 圖片位置
* @param newpath 新生成的圖片位置
*/
public static void cutImage(int x, int y, int width, int height, String oldpath, String newpath) {
FileInputStream is = null;
ImageInputStream iis = null;
//這個是獲取圖片擴展名的方法,比如:jpg。我這里有現成的,如果沒有,自己實現
String imgType = StringUtil.getExt(oldpath);
try {
is = new FileInputStream(oldpath);
Iterator<ImageReader> it = ImageIO.getImageReadersByFormatName(imgType);
ImageReader reader = it.next();
iis = ImageIO.createImageInputStream(is);
reader.setInput(iis, true);
ImageReadParam param = reader.getDefaultReadParam();
Point p = new Point();
p.setLocation(x, y);
Dimension d = new Dimension();
d.setSize(width, height);
Rectangle rect = new Rectangle(p, d);
param.setSourceRegion(rect);
BufferedImage bi = reader.read(0, param);
ImageIO.write(bi, imgType, new File(newpath));
is.close();
iis.close();
} catch (Exception e) {
log.error(e);
}
}
/**
* 縮略圖片
* @param oldpath 原圖片
* @param newpath 新生成的圖片存放地址
* @param wdith 縮略後的寬
* @param height 縮略後的高
*/
public static void scaleImage(String oldpath, String newpath, int wdith, int height) {
// 獲取老的圖片
File oldimg = new File(oldpath);
try {
BufferedImage bi = ImageIO.read(oldimg);
Image Itemp = bi.getScaledInstance(wdith, height, BufferedImage.SCALE_SMOOTH);
BufferedImage thumbnail = new BufferedImage(wdith, height, BufferedImage.TYPE_INT_RGB);
thumbnail.getGraphics().drawImage(Itemp, 0, 0, null);
// 縮略後的圖片路徑
File newimg = new File(newpath);
FileOutputStream out = new FileOutputStream(newimg);
// 繪圖
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(thumbnail);
param.setQuality(1.0f, false);
encoder.encode(thumbnail);
out.close();
bi.flush();
bi = null;
} catch (IOException e) {
log.error(e);
}
}
public static void main(String[] args) {
scaleImage("D:/2.jpg", "D:/3.jpg", 50, 50);
}
}
Ⅵ JAVA split限定切割次數的方法,是怎樣切的
這里後面的2不是切割兩次的意思,是返回的數組的個數,因為你的第一次切割的時候,就已經會輸出兩個數,也就是切割了一次,按照第一次「u」切割,結果就是f 和 Cuku
Ⅶ 如何用java實現切割一張圖片
BufferedImage類有一個getSubimage()方法,以下來自API
public BufferedImage getSubimage(int x,
int y,
int w,
int h)
返回由指定矩形區域定義的子圖像。返回的 BufferedImage 與源圖像共享相同的數據數組。
參數:
x - 指定矩形區域左上角的 X 坐標
y - 指定矩形區域左上角的 Y 坐標
w - 指定矩形區域的寬度
h - 指定矩形區域的高度
返回:
BufferedImage,它是此 BufferedImage 的子圖像。
拋出:
RasterFormatException - 如果指定區域不包含在此 BufferedImage 中
Ⅷ 如何編寫切割視頻的java程序哪位有思路指點下
首先大部分視頻是壓縮流媒體,你得有相應的解碼器。也就是解壓視頻數據的演算法,上網搜搜也許能搜索到相關的java類庫。
然後你得建立自己一個「視頻流」,原理類似於位元組流,字元流等java標准類庫里有的流。並編寫相應演算法,形成流位置與視頻時間的映射,這樣通過時間段的截取就可以得到相應的視頻片段。最後是對所截取的流進行包裝,寫入文件信息,並最終寫入硬碟形成新的完整的視頻文件。
但要注意的是,因為視頻文件較大,一次性全部讀入內存對性能影響較大。對流的讀取最好只取小片段,一點一點的處理。
這就是大概的原理,實現起來還是很有難度的,加油吧,網上資料很多,網路一下,找到它們
